Printf long long int в C с GCC?

Как напечатать f long long int а также unsigned long long int на C99 с использованием GCC?

Я просмотрел другие сообщения, которые предлагают использовать %lld но он дает следующие предупреждения:

предупреждение # 1: неизвестный тип преобразования символ ‘l’ в формате [-Wformat] |
предупреждение # 2: слишком много аргументов для формата [-Wformat-extra-args] |

Для следующей попытки:

 #include  int main() { long long int x = 0; unsigned long long int y = 0; printf("%lld\n", x); printf("%llu\n", y); } 

Если вы работаете с windowsми и используете mingw, gcc использует runtime runtime, где printf нуждается в %I64d для 64-битного целого числа. (и %I64u для неотвержденного 64-битного целого)

Для большинства других платформ вы должны использовать %lld для печати долгого времени. (и %llu если оно не %llu ). Это стандартизировано на C99.

gcc не поставляется с полной версией C, он отказывается от платформы, на которой он работает, поэтому общий случай заключается в том, что вам нужно проконсультироваться с документацией для вашей конкретной платформы – независимо от gcc.

Попробуйте обновить свой компилятор, я использую GCC 4.7 в Windows 7 Starter x86 с MinGW, и он компилируется с одинаковыми параметрами как на C99, так и на C11.