В версии C89 определенны следующие основные типы данных.
Тип данных |
Ключевое слово |
Символьный |
char |
Целочисленный |
int |
С плавающей запятой |
float |
С плавающей запятой двойной точности |
double |
Пустой |
void |
К перечисленным выше типам в версии C99 добавлены следующие.
Тип данных |
Ключевое слово |
Логический, или булев (истина/ложь) |
_Bool |
Комплексный |
_Complex |
Мнимый |
_Imaginary |
В языке C++ к типам, что определенны в версии C89 добавлены следующие.
Тип данных |
Ключевое слово |
Логический, или булев (true/false) |
bool |
Символьный двухбайтовый |
wchar_t |
Ключевое слово wchar_t задаёт тип двухбайтовых символов. Для хранения символов широкого, или двойного, формата отводиться 16 разрядов
Примечание: ключевые слова для обозначения логического типа данных в версии C99 и языке C++, отличаются одно от другого: _Bool (C99) и bool (C++). В версии C89 логический тип данных вообще отсутствует.
Некоторые основные типы могут быть модифицированы с помощью одного или нескольких модификаторов типов:
- signed - знаковый
- unsigned - беззнаковый
- short - короткий
- long - длинный
Если при объявлении переменных используется один модификатор (без наименования типа), то предполагается использование типа int. Например, две следующие записи эквивалентны.
unsigned int i;
unsigned i;
Тип |
Размер в байтах |
Диапазон |
char |
1 |
-128 - 127 |
unsigned char |
1 |
0 - 255 |
signed char |
1 |
-128 - 127 |
int |
2 |
-32 768 - 32 767 |
unsigned int |
2 |
0 - 65 535 |
signed int |
2 |
Аналогично int |
short int |
2 |
Аналогично int |
unsigned short int |
2 |
0 - 65 535 |
signed short int |
2 |
Аналогично int |
long int |
4 |
-2 147 483 648 - 2 147 483 647 |
signed long int |
4 |
Аналогично long int |
unsigned long int |
4 |
0 - 4 294 967 295 |
long long int |
8 |
-263 - (263-1) (только в C99) |
signed long long int |
8 |
Аналогично long long int (только в C99) |
unsigned long long int |
8 |
0 - 264-1 (только в C99) |
float |
4 |
3.4E-38 - 3.4E+38 (6 значащих цифр) |
double |
8 |
1.7E-308 - 1.7E+308 (10 значащих цифр) |
long double |
10 |
34E-4932 - 3.4E+4932 (10 значащих цифр) |
wchar_t |
2 |
Аналогично unsigned int |