c語言extern變數
㈠ extern在c語言中是什麼意思
extern關鍵字可以置於變數或者函數前,以標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。這里起到的是聲明作用范圍的用處。
extern的另外用法是當C和C++混合編程時假如c++調用的是c源文檔定義的函數或變數,那麼要加extern來告訴編譯器用c方式命名函數:
文檔A.cpp調用a.c裡面的變數i和函數callme()
(1)c語言extern變數擴展閱讀
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
㈡ 嵌入式—C語言—全局變數和extern的用法
全局變數區分靜態全局變數和全局變數兩種。
1 靜態全局變數。
有static修飾的變數為靜態全局變數。需要定義在函數外,可以在定義位置到本文件結束部分使用。定義格式為
static type var=init_value;
作用為定義一個類型為type,變數名為var的靜態全局變數,並賦初始化值為init_value。當=init_value部分被省略時,系統自動初始化為0值。
可以用extern擴展可使用空間,聲明格式為
extern type var;
注意不可以有初始化值。
extern聲明只允許出現在本文件內,聲明後,可以在聲明語句到文件尾使用該變數。
2 全局變數。
沒有static修飾的變數為全局變數。需要定義在函數外,可以在定義位置到本文件結束部分直接使用。定義格式為
type var=init_value;
作用為定義一個類型為type,變數名為var的全局變數,並賦初始化值為init_value。當=init_value部分被省略時,系統自動初始化為0值。
要在文件其它位置或其它文件中使用時,需要用extern進行聲明,聲明格式為
extern type var;
注意不可以有初始化值。
聲明後,可以在聲明語句到聲明語句所在文件尾使用該變數。也可以寫在頭文件中,這樣在引用該頭文件的C文件中,可以在引用位置到文件結尾使用該變數。
㈢ C語言中extern的意思是什麼
extern關鍵字可以置於變數或者函數前,以標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。這里起到的是聲明作用范圍的用處。
extern的另外用法是當C和C++混合編程時假如c++調用的是c源文檔定義的函數或變數,那麼要加extern來告訴編譯器用c方式命名函數:
文檔A.cpp調用a.c裡面的變數i和函數callme()
添加了extern 「C」鏈接指示後,上面的代碼就能夠正常運行了。
㈣ C語言 函數聲明前extern的用法
個人看法,僅供參考。
(1)別的就是指「這一個」以外的;C盤定義,D盤調用,原則上可以,但是麻煩,寫程序應該越簡單越好,不提倡這樣做;「別的」原則上沒有限定幾層,但是最好放在同一個文件夾,原因也說了,分開放麻煩。
(2)作用相同,不完全等價。區別在哪呢?include 「*.h」
int f();把「*.h」里的所有東西都搬過來(除了f()之外可能還有其他的),那麼肯定包含有f();而extern int f();表示你明確知道你要調用的是「*.h」里的f()這個函數,其它你都不需要。
「這么說,如果所有外部函數聲明時都加上extern就不需要include 「*.h」頭文件了?」是的,但是你想想,如果你所有外部函數都要用到的話,你自己手動給所有函數加上extern還是直接一個include 「*.h」哪個更方便呢
㈤ c語言中的extern是什麼,有什麼作用啊
extern關鍵字可以置於變數或者函數前,以標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。這里起到的是聲明作用范圍的用處。
extern的另外用法是當C和C++混合編程時假如c++調用的是c源文檔定義的函數或變數,那麼要加extern來告訴編譯器用c方式命名函數:
文檔A.cpp調用a.c裡面的變數i和函數callme()
添加了extern 「C」鏈接指示後,上面的代碼就能夠正常運行了。
㈥ c語言extern
extern是全局變數聲明
只要聲明全局變數就默認 前面加extern(程序員可以不加,但編譯器默認加上)
若本文件 引用別的文件中的全局變數 一定要加上extern 聲明一下
例如 #include "my_Fun.c"
extern int b;//b是在my_Fun.c中聲明了的一個全局變數
這個extern 是個聲明他可以在任何地方聲明 引用了一個全局變數 (可以試試 在main()函數執行完之後聲明 也不會出錯)
這樣在 工程的總頭文件中就不需要考慮 先#include 哪個文件了
㈦ 《c語言》中「extern」怎麼用
extern是外部聲明用的,用來聲明外部的函數或者變數定義。
例如,你在1.C中定義了一個函數和變數:
void fun1(void);
int a = 0;
而你要在2.c中調用 fun1(),並且讀取a的值,
那麼需要再2.c的頭部如下外部聲明:
extern void fun1(void);
extern int a = 0;
這樣的話在編譯器在編譯2.c時,不會報錯誤,而在鏈接時找fun1、a,以實現對外部函數、變數的訪問。
㈧ C語言中全局變數說明符extern該如何使用
在C語言中,extern是全局變數聲明的關鍵字
只要聲明全局變數就默認 前面加extern(程序員可以不加,但編譯器默認加上)若本文件 引用別的文件中的全局變數 一定要加上extern 聲明一下,如
在file1.c中定義的全局變數,file2.c中想要使用該變數,即使include了頭文件,但是如果沒有extern關鍵字來聲明的話,在file2.c中是無法訪問到的。