我正在用C开发一个项目,它扩展了现有图书馆 (通过标准的include
s)。随着图书馆的发展,许多功能被废弃了。但是,这只在文档中显示;代码没有以任何方式标记这种状态。
每当我尝试使用这些不推荐的函数之一时,我想让项目警告我,特别是因为库正在积极开发,所以我可能在弃用之前使用了一些东西,并且在它的状态发生变化时没有被注意到。在gcc的领导下,除了修改库代码本身之外,还有什么办法可以做到吗?(首先,保持一个带有gcc属性的本地版本是不切实际的。)
这个是可能的吗?看来可以用它的
#pragma deprecated(X,Y,...)
语法,但我不认为gcc支持这个,只是
__attribute__ ((deprecated))
函数声明本身。
发布于 2014-05-15 11:24:07
从一个工作项目中拉出来的
#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.aspx和http://msdn.microsoft.com/en-us/library/044swk7y.aspx
然后
DEPRECATED(void foo(int a, int b, int c));
https://stackoverflow.com/questions/23686494
复制