關於include 和 extern


Q:在多文件的項目中,一個文件用到了另一個文件中定義的函數,此時既可以用extern來引用該函數,又可以#include 另一個文件使得編譯通過。請問這兩種方式本質有什么不同?

A:

1L

本質上沒太大區別,在include的文件(頭文件)里也是用extern來聲明的.
但用include文件有很多優點:
當用到多個外部變量或函數的時候,
extern:在每個用到的文件中需要用多個extern 聲明;
include:只需要在include各聲明一次,其它使用這些變量的只需要包含該頭文件即可.

2L

extern 函數,
include  對應頭文件 ...
include 對應的 c 文件是不可取的方式 ..

3L

有點的。如果沒有說錯。
include頭文件的變量在各自的cpp里面,是獨立的。不會有互相的影響的。
extern聲明,在到處的值都是一樣的。

 

4L

事實上,extern void fun(); 中的extern 也是可以取消的,只是加上它更明確一些而已。
extern void fun();
void fun();都表示函數聲明,這和變量不同。

5L

最好用include,這樣程序更清晰,更容易維護

 

6L

大體上,你可以把extern 和 include 的區別當做是“零售”與“批發”的區別。include是批發,而extern 則是零售。


免責聲明!

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



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