Gre*_*ill 10 c++ clang trigraphs
我有一些(遗留)代码,我第一次使用clang构建.代码类似于:
sprintf(buf, "%s <%s ????>", p1, p2);
Run Code Online (Sandbox Code Playgroud)
Clang发出以下警告(错误-Werror):
test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
sprintf(buf, "%s <%s ????>", p1, p2);
^
Run Code Online (Sandbox Code Playgroud)
显然,这??>不是一个三元组,所以我想完全禁用三元组(源不会故意在任何地方使用它们).
我试过了,-no-trigraphs但这不是一个真正的选择:
clang: warning: argument unused during compilation: '-no-trigraphs'
Run Code Online (Sandbox Code Playgroud)
我可以关闭三元组警告,-Wno-trigraphs但我不希望实际发生三元组转换.
注意:Trigraphs被启用为使用的意外副作用-std=c89.
尝试使用gnu*模式 - "Trigraphs默认在gnu*模式下关闭;它们可以通过-trigraphs选项启用." (有关其他差异和命令行开关,请参阅http://clang.llvm.org/docs/UsersManual.html#c_modes)