Во-первых, вы должны убедиться, что ваш компилятор работает в 64-битном режиме.Некоторые компиляторы по умолчанию используют 32-битный режим целевой платформы, даже если они способны генерировать 64-битный код.
Во-вторых, некоторые компиляторы предпочитают модель 64-битного типа, где тип int
остается 32-битным.GCC на самом деле является одним из них.Итак, ваши ожидания того, что тип int
станет 64-битным типом в 64-битном режиме, абсолютно необоснованны.
Опять же, все зависит от компилятора и только от компилятора (и от настроек компилятора).То, что вы сделали с вашей ОС, совершенно не имеет значения.Вы можете обновить свой Solaris до 237-битной или 1001-битной версии, но GCC будет продолжать генерировать 32-битный код, пока не будет изменено значение по умолчанию GCC или пока вы явно не запросите другую целевую платформу.