我知道临时定义就像
int i;
int i;
,它们在链接时合并在一起 真正的定义就像
int i=5;
使用一次,但是在代码 (为什么我需要两次声明它?)中具有许多临时定义有什么意义?
以及为什么重复的临时定义会在 C ++ 中产生错误并在 C
答案 0 :(得分:2)
因为C ++没有暂定的定义。那是C ++所没有的C语言功能。
因此,当您编写int i;
时,这是一个真实的定义(不附带初始化程序)。根据一个定义规则,您只能有一个定义(!)。
作为一个为什么您要想要在C语言中使用它们的示例,老实说,我想不出一个。也许这就是为什么C ++不会打扰!
请注意,您仍然可以根据需要多次声明东西。对于对象,您需要使用extern
来表示这种意图:
extern int x;
extern int x;
extern int x;
int x = 0;