[Из песочницы] Вся правда о целочисленных типах в C
Для начала несколько вопросов:- Тип
char
по умолчанию знаковый или нет? Аint
? - Сколько бит в
char
? - Какое максимальное число гарантированно можно поместить в
int
? А минимальное? - Тип
long
определённо больше, чемchar
, не так ли?
Разумеется, экспериментально искать ответы на эти вопросы с помощью вашего любимого компилятора в вашей любимой системе на вашем любимом компьютере1 — не лучшая идея. Мы говорим о стандарте языка (С99 и новее).
Если вы уверенно сможете правильно ответить на эти вопросы, тогда эта статья не для вас. В противном случае десять минут, потраченные на её чтение, будут весьма полезны.
Предположу, что вы ответили
- Знаковые оба.
- 8.
- 2147483647. -2147483648.
- Конечно, кэп.
А правильные ответы такие
char
— не регламентируется,int
— знаковый.- Не менее 8.
- 32767. -32767
- Вообще говоря, нет.
Читать дальше →