C语言中两个源文件,两个同名的未初始化全局变量,这时哪个算该变量的定义?

2025-02-22 15:20:58
推荐回答(3个)
回答1:

都算。所以如果把这些文件链接在一起,就会出现链接错误(linking error)

回答2:

既然要连接到一起,就不允许同名的变量多次定义,可以考虑保留其中一个int i;其他的都改成
extern int i;

回答3:

我也遇到了一样的问题,是因为在gcc的编译环境下才不会报错,在arm环境下就会报错了。如果你把变量在两个文件都初始化了就会报错。