用C编译时删除`restrict`关键字的宏

前端之家收集整理的这篇文章主要介绍了用C编译时删除`restrict`关键字的宏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在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头的位置.

猜你在找的C&C++相关文章