我正在寻找与 gcc 一起使用的正确警告标志来检测以下内容:
#include <stdlib.h>
#include <stdio.h>
int main()
{
const size_t n = (size_t)-1;
for( unsigned int i = 0; i < n; ++i ) /* use `unsigned char` if you want */
{
printf( "%d\n", i );
}
return 0;
}
我试过:
$ gcc -Wsign-conversion -Wconversion -pedantic -Wsign-compare -W -Wall -Wextra -std=c99 t.c
发生的事情是我一直在修改unsigned int
用于内存块大小的现有代码。代码以较大的文件开始失败。所以我需要检查我没有错过任何剩余的东西。
编辑:
刚刚发现-Wtype-limits
,但这又不适合我