在开发一些公共库函数的时候,我们常常会对函数进行改写,这个时候我们会希望使用者用新的函数。为了提醒使用者,我们可以通过将函数声明为deprecated,这样编译器在编译的时候会抛出一个C4995或者C4996的警告。这个警告我们应该也经常看到过,比如使用strcpy,编译器会提示我们使用strcpy_s。
使用这个编译器特性有两种方法:
- __declspec(deprecated)
- #pragma deprecated
__declspec(deprecated)
https://msdn.microsoft.com/en-us/library/044swk7y.aspx
这种方法直接声明在函数或者类之前,在使用函数的地方会抛出C4996的警告__declspec(deprecated) void func1(int) {}
当然我们还可以给警告自定义消息信息
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
#pragma deprecated
https://msdn.microsoft.com/en-us/library/c8xdzzhh.aspx
这种方法可以一次性声明多个函数或者类,使用函数的地方会抛出C4995的警告#pragma deprecated(func1, func2)