当前位置:  开发笔记 > 程序员 > 正文

源文件中的代码排序 - 前向声明与"不要重复自己"?

如何解决《源文件中的代码排序-前向声明与"不要重复自己"?》经验,为你挑选了1个好方法。

如果您使用C编写代码并将编译器配置为坚持在使用它们之前声明所有函数(或者如果您使用C++编写代码),那么您最终可以使用(至少)两个组织中的一个来处理源文件.

或者:

在此文件中转发(静态)函数的声明

外部功能(主要入口点)

静态 - 非公共 - 功能

要么:

静态 - 非公共 - 功能

外部功能(主要入口点)

我认识到在C++中,术语"静态"不是首选,但我主要是C程序员,并且C++中存在等效概念,即文件中的匿名命名空间中的函数.

题:

您使用哪个组织,为什么更喜欢它?

作为参考,我自己的代码使用第二种格式,以便在使用静态函数之前定义静态函数,这样就不需要声明它们并定义它们,从而节省了有关函数接口的信息写出两次 - 反过来,当内部接口需要改变时,它会减少(略微)开销.这样做的缺点是文件中定义的第一个函数是最低级别的例程 - 由文件后面定义的函数调用的例程 - 所以不是在顶部有最重要的代码,它更接近底部的文件.对你有多重要?

我假设所有外部可访问的函数都在头文件中声明,并且这种重复形式是必要的 - 我认为这不应该引起争议.



1> Robert Gambl..:

我一直使用方法#1,原因是我希望能够快速判断特定文件中定义了哪些函数,并在一个地方看到它们的签名.我没有找到必须更改原型以及函数定义特别有说服力的论点,因为你通常最终会改变调用已更改函数的所有代码,在你处理时更改函数原型似乎相对微不足道.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有