2

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

GCC 表示默认情况下会启用此警告。

我找不到-Wno-此警告的合适选项。

你会在这样的代码中收到这样的警告

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

where^@表示 ASCII 0 字符(您可以使用vimvia - 输入它,并在光标放在字符上时在命令模式下Ctrlv0验证它)。ga

4

1 回答 1

3

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

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

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

于 2012-09-22T13:28:19.660 回答