当我用字符数组下标如本例:字符数组下标警告
int main(){
char pos=0;
int array[100]={};
for(pos=0;pos<100;pos++)
printf("%i\n", array[pos]);
return 0;
}
我得到警告说,我使用的字符数组下标:
警告:数组下标具有类型“ char'[-Wchar-subscripts]
这是好的,因为我已启用此警告。
GCC手册说:如果数组下标具有类型 “CHAR”
-Wchar-标 发出警告。这是错误的常见原因,因为程序员经常忘记这种类型是在某些 机器上签名的。此警告由-Wall启用。
所以这个警告应该防止使用负数组索引。我的问题是,这个警告为什么只在char上激活,而不是在其他签名类型上激活?
谢谢。
请注意,您应该将'size_t'用于数组元素,而不是'char'。 – netcoder 2013-02-21 16:05:25