c語(yǔ)言extern的用法 c語(yǔ)言中的extern怎么用?
c語(yǔ)言中的extern怎么用?Extern是C中的一個(gè)外部聲明,因?yàn)镃在使用它之前聲明它。當(dāng)要調(diào)用的變量或函數(shù)不在模塊中時(shí),可以使用外部聲明。使用外部聲明時(shí)應(yīng)特別注意,因?yàn)樗皇且粋€(gè)聲明,而不是實(shí)體。
c語(yǔ)言中的extern怎么用?
Extern是C中的一個(gè)外部聲明,因?yàn)镃在使用它之前聲明它。當(dāng)要調(diào)用的變量或函數(shù)不在模塊中時(shí),可以使用外部聲明。使用外部聲明時(shí)應(yīng)特別注意,因?yàn)樗皇且粋€(gè)聲明,而不是實(shí)體。當(dāng)聲明與實(shí)體不匹配時(shí),編譯器將不會(huì)處理它,并且鏈接后可能會(huì)發(fā)生錯(cuò)誤。例如,您的實(shí)體是intsample(intx),您將其聲明為externalintsample(void),因此我不喜歡這種聲明方式。特別是在多人合作的項(xiàng)目中,這種方法的結(jié)果很難調(diào)試。即使有人編寫了提供給您的內(nèi)容,當(dāng)他更改函數(shù)或變量的類型和參數(shù)時(shí),也常常忘記修改提供給您的語(yǔ)句。
extern的另一個(gè)功能是,當(dāng)您將C與C混合使用時(shí),例如,如果您想在C中使用C,您需要告訴編譯器您的代碼使用C,并且需要使用C編譯器進(jìn)行編譯??梢允褂胑xtern“C”{…}否則編譯時(shí)會(huì)出現(xiàn)問題
extern用于聲明外部函數(shù)或變量定義。例如,在1.C中定義一個(gè)函數(shù)和變量:void fun1(void)int a=0,并且要在2.C中調(diào)用fun1(),并讀取a的值,那么在編譯器編譯2時(shí),需要按如下方式重新設(shè)置2.C的頭:extern:extern extern(())。C、 它不會(huì)報(bào)告錯(cuò)誤。相反,它將尋找fun1和a來(lái)訪問外部函數(shù)和變量。
c語(yǔ)言中extern怎么用,舉個(gè)簡(jiǎn)單例子說(shuō)明下,謝謝?
瀉藥,這種問題最煩人。就說(shuō)我的觀點(diǎn)是錯(cuò)誤的吧。別噴了。Extern有很多功能。如果順序是int a=2;extern int a;此時(shí),編譯器理解extern是一個(gè)引用變量,因此當(dāng)int a=2時(shí),將其更改為static int a=2;
沒有問題,但順序是extern int a;static int a=2;extern的功能是聲明變量a。如果聲明變量a,(不同于普通int a,definition)u,你需要有一個(gè)定義,但是你定義了static int,所以編譯器認(rèn)為變量a只有一個(gè)聲明但沒有定義,所以它自然會(huì)報(bào)告一個(gè)錯(cuò)誤。