-qformat (-Wformat)
适用的调用
选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
---|---|---|---|---|
-qformat | ✓ | ✓ | ||
-Wformat | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
就可能存在的有关字符串输入和输出格式规范的问题发出警告。
诊断的函数为 printf
, scanf
, strftime
, strfmon
系列函数和带有格式属性标记的函数。
语法
如需了解 -Wformat 选项的详细信息,请参阅GCC信息,网址为 http://gcc.gnu.org/onlinedocs/。
缺省值
-qnoformat 或 -Wno-format
参数
- all | noall
- 启用或禁用所有格式诊断消息。
- exarg | noexarg
- 警告
printf
和scanf
样式函数调用中是否出现多余的自变量。 - nlt | 非 lt
- 警告格式字符串是否不是字符串文字,除非格式函数将其格式自变量作为
va_list
。 - 秒 | nosec
- 警告使用格式函数时可能存在安全问题。
- y2k | noy2k
- 发出生成 2 数字年份的
strftime
格式的警告。 - zln | nozln
- 警告长度为零的格式。
-qnoformat 等同于 -qformat=noall。
预定义的宏
无。
示例
要启用所有格式字符串诊断,请输入以下任一内容:
xlc myprogram.c -qformat=all
xlc myprogram.c -qformat
要启用除 y2k 日期诊断以外的所有格式诊断检查,请输入:
xlc myprogram.c -qformat=all:noy2k