当我在本例中使用 char 数组下标时:
int main(){
char pos=0;
int array[100]={};
for(pos=0;pos<100;pos++)
printf("%i\n", array[pos]);
return 0;
}
我收到警告说我正在使用 char 数组下标:
警告:数组下标的类型为 'char' [-Wchar-subscripts]
没关系,因为我启用了这个警告。
GCC 手册说:
-Wchar-subscripts 如果数组下标的类型为“char”,则发出警告。这是错误的常见原因,因为程序员经常忘记这种类型是在某些机器上签名的。此警告由 -Wall 启用。
所以这个警告应该防止使用负数组索引。我的问题是,为什么这个警告只在 char 上有效,而不在其他有符号类型上有效?
谢谢你。