如何禁用警告:保留在文字中的空字符?

时间:2012-09-22 12:53:46

标签: gcc suppress-warnings

基本上我想忽略文字中关于空字符的警告。

GCC表示默认启用此警告。

我无法为此警告找到合适的-Wno-选项。

您在此类代码中收到此类警告

const char input[] = "abc^@123";

其中^@表示ASCII 0字符(您可以通过 Ctrl v 0 输入vim - 并在光标放在角色上时,通过命令模式中的 g a 进行验证。

1 个答案:

答案 0 :(得分:3)

它发生在词法分析器中,看起来你不能禁用检查。 :-(这是libcpp/lex.c的代码段:

if (saw_NUL && !pfile->state.skipping)
  cpp_error (pfile, CPP_DL_WARNING,
         "null character(s) preserved in literal");

如您所见,在发出警告之前不会检查任何选项。