有没有办法定义BEGIN_C_CODE和END_C_CODE宏来正确扩展?
平台:Visual Studio 2012
HeaderFile.h
#if defined (__cplusplus)
#define BEGIN_C_CODE extern "C" {
#define END_C_CODE }
#else
// Edit: @shathaway mentioned 'The not case is actually included in my code'
#define BEGIN_C_CODE
#define END_C_CODE
#endif
ProgramFile.cpp
#include "HeaderFile.h"
BEGIN_C_CODE
// C Source Code
END_C_CODE
在ProgramFile.cpp中,END_C_CODE注册了一个Intellisense错误: “此声明没有存储类或类型说明符。”
当没有使用宏扩展时,但是使用完整的包装器时,一切正常!
#if defined (__cplusplus)
extern "C" {
#endif
// C Source Code
#if defined (__cplusplus)
}
#endif