gpt4 book ai didi

c - 如何检测extern "C"生效

转载 作者:太空狗 更新时间:2023-10-29 17:15:51 28 4
gpt4 key购买 nike

我正在尝试查找 #include 位于 extern C block 内的所有位置。是否可以使用预处理器进行检查?我想在我的头文件中添加类似这样的内容:

#ifdef EXTERN_C_IS_IN_EFFECT
#error File included from extern "C" block!
#endif

在这种情况下,我也在寻找其他方法来使编译失败,例如使用一些特殊的属性。我正在使用 gcc 4.4.7。

我定义了以下宏,然后在每个需要防止包含在 extern C block 中的 header 中使用它:

#define ASSERT_NO_EXTERN_C void assert_no_extern_c(int); void assert_no_extern_c(double);

最佳答案

也许您可以定义两个具有相同名称和不同参数的函数原型(prototype)。如果出现外部“C” block ,您将收到警告。在 C++ 中是允许的。

关于c - 如何检测extern "C"生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694752/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com