Я использую Codeblocks и компилятор GNU на компьютере под управлением Windows. При запуске компилятора, он делает это при следующих условиях:Как использовать большие целые числа в программе на C?
mingw32-gcc.exe -Wall -g -std=c11 <filename> -o obj\Debug\main.o
Мой код выглядит следующим образом:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("INTEGER min: %d\n", INT_MIN);
printf("INTEGER max: %d\n\n", INT_MAX);
printf("UNSIGNED INTEGER max: %u\n\n", UINT_MAX);
printf("LONG INTEGER min: %ld\n", LONG_MIN);
printf("LONG INTEGER max: %ld\n\n", LONG_MAX);
//printf("LONG LONG INTEGER min: %lld\n", LONG_LONG_MIN);
//printf("LONG LONG INTEGER max: %lld\n\n", LONG_LONG_MAX);
printf("UNSIGNED LONG INTEGER max: %lu\n\n", ULONG_MAX);
//printf("UNSIGNED LONG LONG INTEGER max: %lld\n", ULONG_LONG_MAX);
printf("\n");
return 0;
}
Мой выход для этого кода:
INTEGER min: -2147483648
INTEGER max: 2147483648
UNSIGNED INTEGER max: 4294967295
LONG INTEGER min: -2147483648
LONG INTEGER max: 2147483648
UNSIGNED LONG INTEGER max: 4294967295
линии со ссылкой на ДЛИННЫЕ ДЛИННЫЕ Целочисленные числа закомментированы, поскольку компилятор выдавал ошибки:
error: 'LONG_LONG_MIN' undeclared (first use in this function)
error: 'LONG_LONG_MAX' undeclared (first use in this function)
error: 'ULONG_LONG_MAX' undeclared (first use in this function)
Однако при наборе кода CodeBlocks предоставил подсказку кода, указывающую на то, что я мог использовать константы LONG_LONG. Следовательно, мне нужны ответы на следующие вопросы:
- Почему целые числа и длинные целые числа имеют одинаковые пределы? Должны ли длинные целые числа иметь больший диапазон значений?
- Почему у меня возникают проблемы с константами LONG_LONG? Означает ли это, что я не могу использовать длинные длинные целые числа?
Благодаря
Возможного дубликата вопроса. Проверьте http://stackoverflow.com/questions/13590735/printf-long-long-int-in-c-with-gcc –
@JamesMcCormac: связанный, но определенно другой вопрос. –