添加我自己的编译器警告

当使用sprintf时,编译器警告我该函数已被弃用。

我怎样才能显示我自己的编译器警告?

Solutions Collecting From Web of "添加我自己的编译器警告"

在Visual Studio中 ,

#pragma message ("Warning goes here")

在旁注中,如果要禁止此类警告 ,请找到编译器警告标识(对于不建议使用的警告,即C4996 )并插入以下行:

#pragma warning( disable : 4996

虽然没有标准的#warning directice,但许多编译器(包括GCC,VC,Intel和Apples)都支持#warning message

 #warning "this is deprecated" 

通常不仅要提出一个警告(人们可以忽略),而且要让编译失败,使用#error指令(这是标准的):

 #if !defined(FOO) && !defined(BAR) # error "you have neither foo nor bar set up" #endif 

要将一个函数标记为不建议使用,请使用__declspec(deprecated) ,例如

 __declspec(deprecated) void f(); 

在VC中,如果您希望警告在编译结束时显示在警告计数中,则需要使用以下格式:

 #pragma message(": warning<put what you like here>: blah blah blah") 

重要的序列是:冒号,空格,“警告”,什么也不是,冒号,“你的警告文本”

如果你想要看起来那么文件和行号可以添加在第一个冒号之前,所以你可以双击它跳转到代码(从microsoft.com ):

 // pragma_directives_message1.cpp // compile with: /LD #if _M_IX86 >= 500 #pragma message("_M_IX86 >= 500") #endif #pragma message("") #pragma message( "Compiling " __FILE__ ) #pragma message( "Last modified on " __TIMESTAMP__ ) #pragma message("") // with line number #define STRING2(x) #x #define STRING(x) STRING2(x) #pragma message (__FILE__ "[" STRING(__LINE__) "]: test") #pragma message("") 

如何使用#pragma消息在Visual C ++中生成用户定义的警告消息

我认为这应该工作

 void foo () __attribute__ ((deprecated("This function is deprecated. \nFor further information please refer to the README")));