ZHCUAU3J January 2018 – March 2024
以下示例演示了如何控制编译器发出的诊断消息。可以使用类似的方式控制链接器诊断消息。
int one();
int I;
int main()
{
switch (I){
case 1;
return one ();
break;
default:
return 0;
break;
}
}
如果使用 --quiet 选项调用编译器,结果如下:
"err.c", line 9: warning: statement is unreachable
"err.c", line 12: warning: statement is unreachable
因为标准的编程做法是在每个 case 支臂的末尾包含 break 语句以避免导向条件,所以可以忽略这些警告。使用 --display_error_number 选项,可以找出这些警告的诊断标识符。结果如下:
[err.c]
"err.c", line 9: warning #111-D: statement is unreachable
"err.c", line 12: warning #111-D: statement is unreachable
接下来,可以使用诊断标识符 111 作为 --diag_remark 选项的参数,将此警告视为备注。此编译不产生诊断消息(因为默认情况下禁用备注)。
可以抑制任何非致命错误,但务必确保仅抑制您理解的且已知不会影响程序正确性的诊断消息。