CCS 中 #ifdef __cplusplus extern "C" { #endif的用法

CCS中用C++時C編譯

源代碼

在CCS中常常有以前的代碼,常在.h文件中出現

#ifdef __cplusplus
extern "C"{
#endif

*一段代碼

#ifdef __cplusplus
}
#endif

代碼分析

  1. #ifdef的用法
#ifdef 被定義的
	*代碼
#endif

上述代碼的含義爲:如果定義了“被定義的”,那麼就執行代碼。

  1. __cplusplus
    __cplusplus是c++定以的宏。
  2. extern “C”{}
    在C++中,爲了支持重載機制,在編譯生成的彙編碼中,要對函數的名字進行一些處理,加入比如函數的返回類型等等。而在C中,只是簡單的函數名字而已,不會加入其他的信息。也就是說:C++和C對產生的函數名字的處理是不一樣的。所以這語句是爲了在C++中執行C語言的語句。
  3. 源代碼整體含義
    如果是在C++執行代碼的話,則extern “C”{}聲名有效,此時其中這段代碼將按照過C的方式進行編譯。

目的總結

爲了代碼既能在C++下執行,也能在C下執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章