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);
}
Ответы
Ответ 1
Если вы работаете с окнами и используете mingw, gcc использует runtime runtime, где printf нуждается в %I64d
для 64-битного целого числа. (и %I64u
для неотвеченного 64-битного целого числа)
Для большинства других платформ вы должны использовать %lld
для долгой печати. (и %llu
, если он без знака). Это стандартизировано на C99.
gcc не поставляется с полной версией C, он отказывается от платформы, на которой он работает, поэтому в общем случае вам нужно проконсультироваться с документацией для вашей конкретной платформы - независимо от gcc.
Ответ 2
Попробуйте обновить свой компилятор, я использую GCC 4.7 в Windows 7 Starter x86 с MinGW, и он компилируется с одинаковыми параметрами как на C99, так и на C11.
Ответ 3
Моя среда:
TDM-GCC
Windows 7 64bit
C++ 11 (ГНУ ++ 11)
Следующий код не может пройти.
станд:: Е ( "% LLD", Num);
Наконец, этот файл заголовка сохранит меня.
включить "cstdint"
Ответ 4
Вы можете попробовать настройки code::block
, есть компилятор..., затем вы выбираете в режиме C.
![enter image description here]()