C與C 互相包含API注意點

2021-07-07 06:17:23 字數 658 閱讀 4543

extern "c"為鏈結指示符,是c++為了實現c及其他語言的混合程式設計!簡單而言,是c++為了向下相容而實施的方法。

extern "c"是c++的新特性,只能用於c++,而c語言是不支援extern 「c++」宣告,若加入,將引起編譯錯誤。

一、c++中要引用c中的函式和變數

c++中要調乙個用c編寫的庫檔案,先要新增extern "c",表示要引用別的語言開發的程式。

引用標頭檔案示例:

extern "c"

#include

引用函式示例:

extern 「c」  int add(int, int);

需要注意:extern "c"不能放在函式體中。

二、c引用c++的函式和變數

而在c中,直接extern該函式即可,如下:

extern int add(int, int);

一般標準的c++標頭檔案會這樣開始:

#ifndef ***

#define ***

#ifdef __cplusplus

extern "c"

#endif

#endif /*****/

表示,如果在c程式中有c++的需求,該c++的**將延伸可用於c程式中。

c 幾個類互相包含

假如有兩個類分別為a,b 現在的情況是 a需要呼叫b中的成員,b需要呼叫a的成員。或者好幾個類都是互相呼叫的關係。一般情況下是這樣做,互相包含標頭檔案,但是這樣肯定是錯誤的。比如兩個類 檔案a.h include b.h include using namespace std class a 檔案b...

關於C 中的標頭檔案互相包含

在c 中一般的程式都會分成標頭檔案和cpp檔案,然後包含不同的標頭檔案可以獲得標頭檔案中的函式的引用,但是這裡就會出現乙個問題就是如果兩個檔案中同時包含了同乙個標頭檔案,例如 a.h中包含了c.h 然後在b.h中 也包含c.h 那麼就會出現上述所提到的重複包含的情況。所以在這裡可以使用乙個 ifnd...

C 程式設計注意點

1.strcpy 是碰到 0就會停止拷貝的,最好使用memcpy和strncpy代替。2.memset並不分配記憶體,malloc才分配。3.迴圈裡面要注意出錯的地方sleep 4.匈牙利命名法 5.臨時變數也要有意義 6.控制代碼要注意釋放,特別是在出錯的地方 7.memset不能過於頻繁 8.物...