我需要在C项目中包含一些最初用C编写的头文件.在头文件中,使用了
restrict
keyword,这导致C语法错误.
我正在寻找一个预处理器宏,它检查我是否正在使用C编译器进行编译,并在这种情况下删除restrict关键字.
解决方法
#ifdef __cplusplus #define restrict #endif
应该这样做. restrict不是C中的关键字,因此#defineing it to nothing是没有问题的.
或者,正如Arne Mertz建议的那样,更好的是
extern "C" { #define restrict // include C headers here #undef restrict }
在C源代码中包含C头的位置.