[Из песочницы] Вся правда о целочисленных типах в C

Для начала несколько вопросов:

  1. Тип char по умолчанию знаковый или нет? А int?
  2. Сколько бит в char?
  3. Какое максимальное число гарантированно можно поместить в int? А минимальное?
  4. Тип long определённо больше, чем char, не так ли?

Разумеется, экспериментально искать ответы на эти вопросы с помощью вашего любимого компилятора в вашей любимой системе на вашем любимом компьютере1 — не лучшая идея. Мы говорим о стандарте языка (С99 и новее).

Если вы уверенно сможете правильно ответить на эти вопросы, тогда эта статья не для вас. В противном случае десять минут, потраченные на её чтение, будут весьма полезны.

Предположу, что вы ответили
  1. Знаковые оба.
  2. 8.
  3. 2147483647. -2147483648.
  4. Конечно, кэп.


А правильные ответы такие
  1. char — не регламентируется, int — знаковый.
  2. Не менее 8.
  3. 32767. -32767
  4. Вообще говоря, нет.



Читать дальше →

© Habrahabr.ru