На моих Solaris 10 обновлений 9 системы следующих выходов команд:64 бит против 32 битного кода C на Solaris 10
#isainfo -b
64
Но если я создаю следующую программу в C с limits.h включен я получаю:
#include <stdio.h>
#include <limits.h>
int main(void)
{
printf("Maximum integer value on this system is = %d\n", INT_MAX);
}
gcc on64.c -o on64 ./on64 Maximum integer value on this system is = 2147483647
Я ожидал гораздо большего результата, так как система работает на 64 бит. Это похоже на 32-битный результат. Это проблема компилятора?
Это фактически отобразит -1. Если вам нужен правильный дисплей, используйте% lld вместо% d в формате инструкции printf. – jlliagre
Спасибо, @jlliagre. –
Добро пожаловать,% jd менее известен, но действительно даже лучше. – jlliagre