c – 如何在GCC中弃用宏?

前端之家收集整理的这篇文章主要介绍了c – 如何在GCC中弃用宏?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道如何使用不推荐使用的属性来弃用像这样的函数
int old_fn () __attribute__ ((deprecated));

但是如何不赞成这样宏:

#define OLD_MACRO 1

先谢谢你.

埃里克

解决方法

很好,优雅的解决方案,但是取决于启用C99(使用gcc 4.8.2或更高版本,未在较早版本上测试):
#define DEPRECATED_MACRO1 _Pragma ("GCC warning \"'DEPRECATED_MACRO1' macro is deprecated\"") 7
#define DEPRECATED_MACRO2(...) _Pragma ("GCC warning \"'DEPRECATED_MACRO2' macro is deprecated\"") printf(__VA_ARGS__)

int main(int argc,char*argv[])
{
    int n = DEPRECATED_MACRO1;
    DEPRECATED_MACRO2("%d\n",n);
    return 0;
}
原文链接:https://www.f2er.com/c/113839.html

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