簡體   English   中英

在 scope 內部和 scope 外部定義外部變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM