有没有办法让gcc或clang为printf()格式说明符生成带有符号和无符号变量不匹配的警告?
我知道使用-Wformat,但是如果数据类型的大小不正确,则仅报告警告.如果只有标志不正确,它不会生成警告.
例如,即使与签名的unsigned int打印不匹配,以下内容也不会生成警告:
uint32_t x = UINT_MAX;
printf("%d", x);
Run Code Online (Sandbox Code Playgroud)
这将打印出-1.
看起来这将是一个有用的警告,但我没有找到任何方法来启用它.