この例のように 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 でのみアクティブで、他の署名された型ではアクティブではないのですか?
ありがとうございました。