2010-09-03 2 views
0

Можно создать дубликат:
How would you set a variable to the largest number possible in C?Есть ли способ, с помощью которого вы можете найти максимальный размер типа данных?

Можем ли мы найти максимальный размер типа данных в C LANGAUGE?

+0

как в "максимальном размере на всех платформах и реализациях?" – louisgab

+0

Я имею в виду, как бы получить наибольшее значение, которое он может присвоить переменной, так что возникновение переполнения происходит. –

ответ

4

Если вы хотите знать, максимальные и минимальные значения, которые вы можете хранить в переменной данного типа данных, вы можете проверить с этими различными константами:

LONG_MIN, LONG_MAX, см. here, для отдыха.

3

Максимальный размер не существует. Тип данных имеет размер, и он остается постоянным в этой реализации. Вы можете получить его по номеру sizeof(datatype).

Если вы запрашиваете максимальное число, представляемое типом данных, то для неподписанных типов вы можете просто сделать (unsigned type)-1. Это полезно, если вы просто используете unsigned typedef (size_t и т. Д.) И не знаете точное базовое имя типа. Для подписанных типов это не сработает. Есть макросы для этого, хотя (в том числе неподписанных вариантов)

INT_MAX /* maximal int value */ 
LONG_MAX /* maximal long value */ 
UINT_MAX /* maximal unsigned int value */ 
/* etc... */ 
Смежные вопросы