得出结论,变量声明的唯一类型是“外部声明”是否明智?
众所周知,以下代码定义(而不是声明)x
,因为它为变量x
分配了内存(KR第4章)。通常,尽管如此,我们通常只说我们在声明x
(但没有初始化它)。
int x; // <-- definition NOT declaration
我可以找到的唯一声明示例是与关键字
extern
一起使用:extern int x;
extern int a[];
除了extern声明之外,还有其他变量声明情况吗?
最佳答案
定义是带有存储的声明。从标准:
6.7声明3 /声明指定一组标识符的解释和属性。
标识符的定义是该标识符的声明
那:
—对于一个对象,导致为该对象保留存储空间;
—对于功能,包括功能主体; 119)
—对于枚举常量,是(唯一)声明
标识符;
—对于typedef名称,是第一个(或唯一)
标识符的声明。
然后,函数原型是一个声明,如果用于前向声明,则该声明可能不符合extern
的要求。一个
有关更多详细信息,请阅读标准的6.7节。
关于c - extern是写不是定义的声明的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35805620/