This question already has answers here:
What is the difference between a definition and a declaration?

(23个答案)


5年前关闭。




据我所知,这是一个声明:
int i;

这是一个定义:
int i = 10;

我不争辩可能是我错了。

问题是编译器是否为已声明(但 undefined )的变量预留了内存?

最佳答案



不,编译器仅记录此变量的名称和类型。没有内存分配用于声明。

如果使用了int i;(未进行优化),并且其他任何编译单元中都存在ino other definition,则i可以充当定义。 (因为为定义保留了存储空间)

关于c - 在C中声明vs定义变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29797022/

10-14 17:52
查看更多