Подтвердить что ты не робот

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);
}
4b9b3361

Ответ 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