int_max в 32-битной или 64-битной среде - PullRequest
1 голос
/ 13 февраля 2012

Отличается ли INT_MAX между 32-битной и 64-битной средой?Похоже, что так и было, хотя я слышал, что люди говорят, что 64-битная среда просто использует INT_MAX 32-битной среды.

Ответы [ 3 ]

5 голосов
/ 13 февраля 2012

Это зависит от системы. На Intel Linux они одинаковые. чек limits.h

0 голосов
/ 13 февраля 2012

Для некоторых компиляторов есть разница с типом long. То есть long равно 32 битам при компиляции для 32 бит и 64 бит в противном случае, тогда как int равно 32 битам в обоих случаях.

Но в зависимости от того, что вы хотите, ответом на ваш вопрос может быть использование int64_t (или эквивалент для вашего компилятора, может быть __int64 или что-то подобное), если вы хотите убедиться, что у вас есть 64- бит int.

Так что уточните свой вопрос.

0 голосов
/ 13 февраля 2012

Ваш вопрос, возможно, слишком общий, но в типичной 64-битной среде (x86-64) int по умолчанию имеет тот же размер, что и на 386 (учитывая, что это также зависит от ОС, а не только от архитектуры). Стандарт C ограничивает только нижние границы (как описано в wiki ).

...