このコードは、VisualStudio2010でコンパイルした場合
#include <cstdlib>
#include <cstdio>
int numbers[] = { 23, 24, 25, 25, 28, 20, 20 };
int main(void) {
int d = -1, x=0;
size_t count = sizeof(numbers) / sizeof(numbers[0]);
if (d <= (sizeof(numbers) / sizeof(numbers[0]))-2)
x = numbers[d+1];
if (d <= count-2)
x = numbers[d+1];
}
に符号付き/符号なしの不一致の警告if (d <= count-2)
が表示されますが、は表示されませんif (d <= (sizeof(numbers) / sizeof(numbers[0]))-2)
。どうしてこれなの?すべての警告を有効にしました。