Язык C не определяет реализацию различных типов, поэтому он может быть эффективно реализован на максимально возможном разнообразии аппаратного обеспечения.
Это распространяется и на целочисленные типы - стандартные целочисленные типы C имеют минимальные диапазоны (например, signed char
- от -127 до 127, short
и int
- от -32,767 до 32,767 long
составляет от -2 147 483 647 до 2 147 483 647 и long long
составляет от -9 223 372 036 854 775 807 (9 223 372 036 854 775 807). Это практически все, что нужно знать программисту.
C99 предоставляет целочисленные типы «фиксированной ширины», такие как int32_t
- но они необязательны - если реализация не может обеспечить такой тип эффективно, она не должна предоставлять его .
Для типов с плавающей запятой существуют эквивалентные ограничения (например, double
должен иметь точность не менее 10 десятичных цифр).