[英]defining extern variable inside of the scope and outside of the scope
我在 scope 和 scope 之外定義了 extern a
a.c
int a;
void foo(void)
{
a = 3;
}
b.c
extern int a = 10; /*same as "extern a; int a = 10?" */
void foo(void);
int main(void)
{
foo();
printf("%d", a);
}
這段代碼定義明確嗎?
a
.
實現有一個通用擴展,允許多個定義,只要最多一個被初始化。
有關更多詳細信息,請參閱:在公共塊中具有全局變量是一種未定義的行為嗎?
extern int a = 10;
與int a = 10;
與extern int a; int a = 10;
extern int a; int a = 10;
. 變量定義具有外部鏈接,除非指定為 static(或在同一范圍內已聲明為 static 的標識符)。
extern int a = 10;
與int a = 10;
如果您同時擁有這兩個代碼,則代碼將不會鏈接,因為您的項目中將有 static 存儲變量a
的多個定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.