看一下下面這個程式:
#include
using
namespace std;
intmain()
這個程式編譯是有問題的,因為你根本沒有寫add這個函式,編譯器會給你報錯。
但是再看這個:
#include
using
namespace std;
extern
intadd
(int a,
int b)
;int
main()
這個程式編譯是沒有問題的,extern說明會讓編譯器認為這個add函式已經在別的檔案中存在,那麼編譯通過,但是如果你沒在別的檔案比如鏈結庫或者其他的.cpp檔案中實現這個add函式的話,或者你已經寫了,但是沒有在標頭檔案中包含進來,在鏈結階段會出現錯誤,但是在編譯階段是不會報錯的! extern 在c c 中的作用
extern c 表示函式使用c的連線方式,也就是說能被c語言寫的程式呼叫 c和c 的連線方式是不一樣的 聯想 extern c 大概也知道了吧 在c 程式中呼叫被c編譯器編譯後的函式,為什麼要加extern c 宣告?因為 c 語言和 c 語言的編譯規則不一樣,所以要告訴系統哪些函式是用 c 方式...
C C 中extern的用法
比如在乙個test.h檔案中有如下 include using namespace std int a 1 void printlog 如果想要在另外乙個原始檔中使用這些全域性變數的話,需要首先用extern宣告一下在本檔案中使用的變數可以再其他模組中尋找到 在main.c中這樣寫 include ...
C C 中extern的用法
1 extern修飾變數的宣告。舉例來說,如果檔案a.c需要引用b.c中變數int v,就可以在a.c中宣告extern int v,然後就可以引用變數v。這裡需要注意的是,被引用的變數v的鏈結屬性必須是外鏈結 external 的,也就是說a.c要引用到v,不只是取決於在a.c中宣告extern ...