一个全局变量或函数可以 (在多个编译单元中) 有多处 “声明”, 但是 “定义” 却只能允许出现一次。
定义是分配空间并赋初值 (如果有) ,声明则是给需要调用该变量或者函数的地方声明该变量或函数,使编译不出错。
最好的安排是在某个相关的 .c 文件中定义, 然后在其对应的头文件 (.h)(用extern修饰) 中进行外部声明, 在需要使用的时候, 只要包含对应的头文件即可。定义变量的
.c 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。
一个全局变量或函数可以 (在多个编译单元中) 有多处 “声明”, 但是 “定义” 却只能允许出现一次。
定义是分配空间并赋初值 (如果有) ,声明则是给需要调用该变量或者函数的地方声明该变量或函数,使编译不出错。
最好的安排是在某个相关的 .c 文件中定义, 然后在其对应的头文件 (.h)(用extern