我试图找到所有放置#include
的地方extern
C block。是否可以使用预处理器来检查?我愿做这样的事情添加到我的头文件:如何检测extern“C”是否生效
#ifdef EXTERN_C_IS_IN_EFFECT
#error File included from extern "C" block!
#endif
我也在寻找其他的方式失败在这种情况下,例如编译使用一些特殊的属性。我正在使用gcc 4.4.7。
我定义下面的宏,然后在每一个这就需要对列入保护extern
Ç块头使用它:
#define ASSERT_NO_EXTERN_C void assert_no_extern_c(int); void assert_no_extern_c(double);
'extern'根本没有被预处理器注意到。 –
如果你需要这个来找到你有一个extern“C”块的所有文件,你可以把你的代码项目中的所有文件都搜索到你喜欢的IDE并做一个“在整个项目/解决方案/ ...中搜索” – Incubbus
@πάνταῥεῖ嗯。 '#define extern static'? –