昨天下午在H文件中定义全局变量导致链接时提示多个obj文件中变量重复。
解决方法如下:
将变量移到C文件中进行定义,然后将其添加到H文件中的变量之前。
这样,当其他C文件引用全局变量时,变量符号将被链接而不是重新生成。
附上防止H文件重复包含的方法:
# _H 文件名_H_
#文件名_H_
//H文件内容
#万一
这个关键词实在是太恶心了。 在定义()的时候,this其实是可以省略的,这样会让你混淆它到底是声明还是定义。 下面分为两类:变量和函数:
特别是对于变量。
int a;//声明一个全局变量a
整数a; //定义一个全局变量a
int a =0;//定义一个全局变量a并赋予初始值。 一旦给出赋值,它一定是一个定义,定义会分配存储空间。
整数a=0; //定义一个全局变量a并赋予其初始值。
该变量声明后不能直接使用,需要先定义才能使用。
第四个和第三个是一样的,都是定义一个可以外部使用的全局变量,并给它一个初始值。
你很困惑,他们看起来如此相似。 但定义只能出现在一处。 也就是说,是否是int a; 或者int a=0;,只能出现一次,但是int a可以出现很多次。
当你想引用一个全局变量时,你必须声明 int a; 此时不能省略,因为省略的话就变成了int a; 这是一个定义,而不是声明。