C語言中的extern變量


C語言中的extern變量

extern變量是全局變量的擴充。

全局(global)變量

在任何一個函數之外聲明的變量就是全局變量,全局變量可以被聲明所在文件中的任何一個函數調用。全局變量只可以被定義一次。
int globalVar

globalVar定義為全局變量時,默認初值為0,並且系統為之分配相應的內存。現在,定義該變量的文件中的任意一個函數可以調用它。

extern變量

假如你想要調用另外一個文件中的全局變量,如果你再聲明一個同名的全局變量,那么編譯器會因為重名報錯,這個時候就要使用extern變量。
extern int globalVar

extern聲明告訴編譯器這個變量的定義在其他文件中,所以並不會為它分配內存。

例子

#main.c

#include<stdlib.h>
#include<stdio.h>
#include"test.h"

int a; /* global variable */

int main(int argc, char** argv)
{
        a = 10;
        func();

        return 0;
}


#test.h

extern int a
int func();


# test.c

#include"test.h"
#include"stdio.h"

int func()
{
        printf("value of a is %d", a );
}

$ gcc main.c test.c -o main
$ ./main
value of a is 10

參考

How to use an extern variable in C?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM