4

我正在使用 C 语言开发一个项目,该项目扩展了现有库(通过标准includes)。随着库的发展,许多功能被弃用。但是,这仅在文档中显示;该代码不会以任何方式标记此状态。

每当我尝试使用这些已弃用的功能之一时,我希望我的项目向我发出警告,特别是因为该库正在积极开发中,所以我可能在弃用之前使用了某些东西,并且在其状态发生变化时没有注意到。除了修改库代码本身之外,有什么方法可以在 gcc 下做到这一点?(一方面,它经常发生变化,以致于保持具有 gcc 属性的本地版本是不切实际的。)

这可能吗?似乎 Visual Studio 可以用它的

#pragma deprecated(X,Y,...)

语法,但我不认为 gcc 支持这个,只是

__attribute__ ((deprecated))

在函数声明本身上。

4

1 回答 1

5

从一个工作项目中提取

#ifdef __GNUC__
#define DEPRECATED(X) X __attribute__((deprecated))
#elif defined(_MSC_VER)
#define DEPRECATED(X) __declspec(deprecated) X
#else
#define DEPRECATED(X) X
#endif

请参阅http://msdn.microsoft.com/en-us/library/dabb5z75.aspxhttp://msdn.microsoft.com/en-us/library/044swk7y.aspx

然后

DEPRECATED(void foo(int a, int b, int c));
于 2014-05-15T19:24:07.817 回答