При использовании sprintf компилятор предупреждает меня, что функция устарела.
Как я могу показать свое собственное предупреждение о компиляторе?
При использовании sprintf компилятор предупреждает меня, что функция устарела.
Как я могу показать свое собственное предупреждение о компиляторе?
#pragma message ("Warning goes here")
На стороне примечания, если вы хотите подавить такие предупреждения, найдите идентификатор предупреждения компилятора (для устаревшего предупреждения он C4996
) и вставьте эту строку:
#pragma warning( disable : 4996
)
Несмотря на отсутствие стандартной директивы #warning
, многие компиляторы (включая GCC, VC, Intels и 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")
Важная последовательность: двоеточие, пробел, "предупреждение", что-то или ничего, двоеточие, "ваш предупреждающий текст"
Если вы хотите быть фантазией, тогда номер файла и строки может быть добавлен до 1-го двоеточия, чтобы вы могли дважды щелкнуть его, чтобы перейти к коду (из 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("")
Я думаю, это должно сработать
void foo () __attribute__ ((deprecated("This function is deprecated. \nFor further information please refer to the README")));