执行标头中存在的不同代码,具体取决于它是C还是C ++

时间:2018-12-02 15:54:18

标签: c++ c

我用以下代码制作了头文件:

#if C    //this code will execute if header file is included in .c file 
struct something{
};
#endif
#if CPP  //this code will be executed if header file is included in .cpp file
class something {
}
#endif

.c和.cpp文件都可以包含此头文件。我应该怎么做才能执行相应的代码片段?

2 个答案:

答案 0 :(得分:8)

这是__cplusplus宏的作用。

#ifdef __cplusplus
// C++ code
#else
// C code
#endif

答案 1 :(得分:0)

您不需要条件编译:

  typedef struct something {
  } something ;

将同时在C和C ++中进行编译。