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下执行。

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