Я использую Xcode в OS X 10.6 на Core 2 Duo. Вот короткая программа:
#include <stdio.h>
int main () {
long a = 8589934592L;
printf("a = %li\n", a);
return 0;
}
Когда я компилирую это из командной строки (gcc -pedantic), я не получаю ошибок или предупреждений. Когда я компилирую это в XCode в конфигурации отладки, я не получаю ошибок или предупреждений. Когда я компилирую это в Xcode в конфигурации выпуска, я получаю предупреждение: «Переполнение при неявном преобразовании констант».
Длинные должны быть 64-битными. И программа работает нормально. Так что же происходит и как мне избавиться от этого предупреждения?