以下标识符没有链接:声明为除对象或函数以外的任何其他标识符的标识符;一个标识符被声明为一个函数参数; 未声明存储类说明符extern的对象的块范围标识符。块范围链接C标准
{
static int a; //no linkage
}
对于在一个范围,其中该标识符的先前声明是可见的,如果事先声明指定的内部或外部联动,标识符中的连杆的存储类说明的extern声明的标识符后面的声明与先前声明中指定的链接相同。如果前面的声明不可见,或者如果先前的声明没有指定链接,那么标识符具有外部链接。
{
static int a; //no linkage
extern int a; //a should get external linkage, no?
}
GCC错误:一个extern声明如下声明没有联动
有人可以解释我为什么我得到这个错误?
谢谢
可能是语义,“指定没有连锁”相对于“指定‘没有连锁’”。在这种情况下自动宣传听起来很疯狂 –
我不明白区别。你能详细说明一下吗? – mindless