我有一個非常複雜的概念,當我編譯許多文件時會發生什麼 - 主要涉及到從一個文件到另一個文件的可見性。從我讀的內容來看,static
將變量或函數的範圍限制在文件本身。 extern
則相反。從那以後,我希望能夠從任何文件中簡單閱讀global extern。儘管如此,這在實踐中並不奏效。源文件中static/extern的用法是什麼?
的main.c:
#include <stdio.h>
int main(void){
printf("%d\n", b); // b is extern global
return 0;
}
交流轉換器:
static int a = 40;
b.c:
extern int b = 20;
我甚至無法編譯:
> gcc main.c a.c b.c -o test
b.c:1:12: warning: ‘b’ initialized and declared ‘extern’ [enabled by default]
extern int b = 20;
^
main.c: In function ‘main’:
main.c:4:20: error: ‘b’ undeclared (first use in this function)
printf("%d\n", b); // b is extern global
這site.Its這是在.h文件所有的extern變量,包括它們在需要.c文件 – Gopi 2015-01-15 18:03:38