This question already has answers here:
What is the difference between a definition and a declaration?
(23个答案)
5年前关闭。
据我所知,这是一个声明:
这是一个定义:
我不争辩可能是我错了。
问题是编译器是否为已声明(但 undefined )的变量预留了内存?
(23个答案)
5年前关闭。
据我所知,这是一个声明:
int i;
这是一个定义:
int i = 10;
我不争辩可能是我错了。
问题是编译器是否为已声明(但 undefined )的变量预留了内存?
最佳答案
不,编译器仅记录此变量的名称和类型。没有内存分配用于声明。
如果使用了int i;
(未进行优化),并且其他任何编译单元中都存在i
的no other definition,则i
可以充当定义。 (因为为定义保留了存储空间)
关于c - 在C中声明vs定义变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29797022/