在标题中声明变量 和 在源代码中声明变量 之间是否有任何区别?例如性能,证券
答案 0 :(得分:0)
完全没有区别。除非它们最好以支持它的方式编写:
标题经常被写入,因此它不会多次声明其内容。
#ifndef __THIS_HEADER_H
#define __THIS_HEADER_H 1
.... (content of header which is protected from multiple insertions)
#endif
模块可能包含.c
文件,但这种情况很少见(并且是非推荐用途):
交流转换器:
#define PERSONALITY 1
#include "main_logic.c"
b.c:
#define PERSONALITY 2
#include "main_logic.c"
main_logic.c:
#if PERSONALITY == 1
int main (void)
{
printf ("personality 1\n");
}
#endif
#if PERSONALITY == 2
int main (void)
{
printf ("personality 2\n");
}
#endif
答案 1 :(得分:-2)
在标头中声明变量使其可用于使用#include<...>
包含此标头的所有文件。在cpp文件中声明它只使它们可用于此文件中的代码。
这是因为 cpp 和 h 文件协同工作的方式。
h 文件包含所有声明,而相应的 cpp 文件应包含这些声明的代码。
请(也适用于未来的读者)请注意,仅使用 h 文件以避免看似复杂的情况是非常糟糕的做法,因为您不会使用一个非常好的语言特性,它可以使它(除了使用类)不可能将私有函数和变量分开。
另外,另一个注意事项: h 文件是分发的,而他们的代码(在 cpp 文件中)被编译成二进制文件。所以为了不将代码发送给每个人并保持头文件较小,你应该适当地拆分它。