我正在阅读Bruce Eckel撰写的《 C++思维》第二版,第82页,其中写道:“您可以在许多不同的地方声明变量或函数,但是在C和C++中必须只有一个定义(有时称为ODR:一种定义规则)。”
声明一次以上会带来什么好处?您是否需要这样做还是仅仅是为了使代码更具可读性?
谢谢。
最佳答案
通常,您只希望在声明文件的位置(例如.h
文件中)放置一个位置。这可能会通过#include
变成多个位置,这就是为什么可以在多个位置定义它的原因。
但是,在某些(罕见)方案中,您可能需要两次声明一个函数。例如,有时在调试时我可能只插入:
void someFunction(int foobar);
在要调试的函数上方,然后调用
someFunction
(即使它不在static
中,即使它在其他文件中也是如此)。这不一定是一个好习惯,但也许我不是但想要添加.h文件并将其设置在我的Makefile / CMakeLists / etc中。但是,例如因为它将迫使更多的东西重新编译。有一些相关的方案,但是我想强调,这被认为是不好的做法。您不会以这种方式提交;这可能只是一个快速的技巧。