- N +

extern c c語言中的extern怎么用

各位老鐵們,大家好,今天由我來為大家分享extern c,以及c語言中的extern怎么用的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們最大的動力,謝謝大家了哈,下面我們開始吧!

C語言中Static和Extern的具體用法,有例子最好

瀉藥,這種問題最折磨人了,說一下我的看法不對勿噴,extern有很多功能,如果順序是inta=2;externinta;這時候編譯器理解extern為引用變量,所以當inta=2;改為staticinta=2;

不會出現問題,但是順序變為externinta;staticinta=2;extern的職能就是聲明變量a,聲明了變量a,(區別正常的inta,定義)u有聲明就需要有定義,但后后面卻定義了staticint,所以編譯認為a變量只有申明沒有定義,自然報錯了。

c語言中的extern怎么用

extern在c中就是個外部申明,因為C是先申明再使用,當你想調用的變量或者函數不在你的模塊當中,你可以使用外部申明。在使用外部申明的時候要特別注意,因為這只是個申明,并不是實體,當出現聲明和實體不符的時候,編譯器是不會管的,鏈接后就可能出現錯誤。比如你的實體是intsample(intx);而你在申明的時候是externintsample(void);所以我不喜歡這種方式去聲明。特別是多個人合作項目的時候,這種方法往往導致的結果很難去debug。即使是別人寫好提供給你的,那他在修改了函數或者變量的類型,參數,往往會忘記修改給你的申明。

extern還有個作用就是當你C和C++混用的時候,比如在C++中要使用C,那么就要告訴編譯器,你這段代碼使用的是C,需要用C的編譯器去編譯,那可以使用extern"C"{.........}否則編譯會有問題

c語言extern跟static可以一起用嗎

//headfilelibrary.h

#ifndefLIBRARY_H

#defineLIBRARY_h

externFILE*logfile;//declaringanexternfilepointer

/*otherrandomcodes*/

#endif

//endofheadfile

//sourcecodemain.c

#include

#include"library.h"

FILE*logfile;//declaretheexternpointerisusedinthisfile

intmain()

{

logfile=fopen(...);

//mainfunction

return0;

}

//endofmain.c

//sourcecodebackend.c

#include"libarary.h"

staticFILE*logfile=fopen(...);

/*otherrandomcodes*/

//endofbackend.c

如上所述,extern在頭文件中聲明一個跨文件的全局變量,每一個需要使用這個變量的文件都要單獨聲明(不加extern再聲明一遍)

而static用于聲明一個靜態變量。靜態變量不能被其他文件訪問,因此可以與其他文件的全局變量同名。另外如果一個變量在文件中被聲明為靜態變量以后,該文件不能再有同名的跨文件全局變量

OK,本文到此結束,希望對大家有所幫助。

返回列表
上一篇:
下一篇: