【发布时间】:2011-11-06 13:59:14
【问题描述】:
以下标识符没有链接: 声明为对象或函数以外的任何标识符;声明为函数参数的标识符; 不使用存储类说明符 extern 声明的对象的块范围标识符。
{
static int a; //no linkage
}
对于使用存储类说明符 extern 在该标识符的先前声明可见的范围内声明的标识符,如果先前的声明指定内部或外部链接,则该标识符在后面的声明处的链接与先前声明中指定的链接相同。如果没有可见的先前声明,或如果先前声明未指定链接,则标识符具有外部链接。
{
static int a; //no linkage
extern int a; //a should get external linkage, no?
}
GCC 错误:没有链接的后续声明的外部声明
谁能解释我为什么会出现这个错误?
谢谢
【问题讨论】:
-
可能是语义,“指定无链接”与“指定'无链接'”。在这种情况下,自动升级听起来很疯狂。
-
我不明白其中的区别。你能详细说明一下吗?
标签: c scope extern standards linkage