鑑於tmp.cpp:如何禁用特定的IBM XL C++編譯器警告?
#include <stdio.h>
#pragma report(disable, CCN8826)
int main(int argc, const char *argv[])
{
const char * hi = "hi\n";
printf(hi);
return 0;
}
儘管我用#pragma report
是應該禁止的警告,我仍然得到:
bash-3.1$ xlC -qformat=all tmp.cpp
"tmp.cpp", line 8.12: 1540-2826 (W) The format string is not a string literal
and format arguments are not given.
如何擺脫警告?
該錯誤消息號是here和在#pragma報告描述是here。 我的編譯器是IBM XL C/C++高級版的藍色基因/ P,V9.0
'#pragma'語句中的消息標識符和編譯器警告不匹配。也許你應該使用'#pragma report(禁用,CCN2826)'而不是? – Praetorian
你明確告訴它打開所有格式的診斷信息...... – user7116
@Praetorian:實際上CCN8826是每個用戶手冊的編譯器信息標識符。 – user7116