*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS 是什么意思

如题所述

意思是重复定义,是一个程序运行出现的错误。

出现该错误则是因为程序中某个变量重复定义,把头文件中的变量定义前加extern(只是变量声明不用初始化),再在某一个要调用该变量的c文件的程序之前再定义(注意第一个调用的c文件要负责附带初始化该变量,其他调用的c文件就不需要初始化过程啦)。

扩展资料:

extern用于变量的用法:

extern int a;//声明一个全局变量a

int a; //定义一个全局变量a

extern int a =0 ;//定义一个全局变量a 并给初值。一旦给予赋值,一定是定义,定义才会分配存储空间。(注意:经过测试在GCC中,这样定义变量是不能通过编译的,而在VS2013可以)

int a =0;//定义一个全局变量a,并给初值,

声明之后不能直接使用这个变量,需要定义之后才能使用。

第四个等于第三个,都是定义一个可以被外部使用的全局变量,并给初值。

当你要引用一个全局变量的时候,你就要声明extern int a;这时候extern不能省略,因为省略了,就变成int a;这是一个定义,不是声明,就会出现变量重复定义的错误。

参考资料:百度百科-extern

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-28
ERROR L104: MULTIPLE PUBLIC DEFINITIONS重复定义
出现上述错误则是因为变量k重复定义,把头文件中的变量定义前加extern(只是变量声明不用初始化),再在某一个你要调用该变量的c文件的程序之前再定义(注意第一个调用的c文件要负责附带初始化该变量,其他调用的c文件就不需要初始化过程)。
相似回答