Я использую компилятор mingw-w64 (gcc 8.1.0) в Windows 10 (64-битная установка).Я ожидаю, что максимальное значение size_t
будет равно (2 ^ 64 - 1).Но мои программы всегда возвращают значение SIZE_MAX
как (только 2 ^ 32 - 1).Что может быть причиной?Как я могу достичь максимального значения (2 ^ 64 - 1) в моих программах на C?
Я изучаю язык C и хотел проверить утверждение, сделанное в книге, о том, что на современных компьютерах максимальный размер составляетsize_t
может быть (2 ^ 64 - 1).Часть кода, которую я попытался проверить, выглядит следующим образом:
#include <stdio.h>
#include <stdint.h>
int main(){
printf("%d\n", sizeof(size_t));
printf("%zu\n", SIZE_MAX);
return 0;
}
Вывод:
4
4294967295
Я использую только один флаг -std=c11
во время компиляции и gcc --version
возвращает:
gcc.exe (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0