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 <stdio.h>

int main()
{
   long long int x = 0;
   unsigned long long int y = 0;
   printf("%lld\n", x);
   printf("%llu\n", y);
}
+49
источник поделиться
4 ответа

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

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

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

+62
источник

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

+3
источник
другие ответы

Связанные вопросы


Похожие вопросы

Моя среда:
TDM-GCC
Windows 7 64bit
C++ 11 (ГНУ ++ 11)

Следующий код не может пройти.
станд:: Е ( "% LLD", Num);

Наконец, этот файл заголовка сохранит меня.
включить "cstdint"

0
источник

Вы можете попробовать настройки code::block, есть компилятор..., затем вы выбираете в режиме C.

enter image description here

-1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос