фундаментальні типи
[Ред] Логічний тип
bool - тип, здатний зберігати одне з двох значень: true (істина) або false (брехня).
[Ред] Символьні типи
signed char - тип для знакового представлення символів. unsigned char - тип для беззнакового представлення символів. char - тип для представлення символів, який може найефективніше оброблятися в цільовій системі (еквівалентний signed char або unsigned char. але все ж відмінний від них тип). wchar_t - тип для широкого представлення символів. char16_t - тип для представлення символів в UTF-16. (Починаючи з C ++ 11) char32_t - тип для представлення символів в UTF-32. (Починаючи з C ++ 11)
[Ред] Цілочисельні типи
int - базовий цілочисельний тип. Може бути опущений, якщо представлений будь-який з модифікаторів. Якщо не представлений жоден з модифікаторів розміру, гарантовано має ширину не менше 16 біт. Проте, на 32/64-бітних системах майже завжди має ширину не менше 32 біт (див. Нижче).
[Ред] Модифікатори
Модифікують цілочисельний тип. Можуть розташовуватися в будь-якому порядку. Тільки один модифікатор з кожної групи може бути представлений в імені типу.
signed - цільової тип буде мати знакова уявлення (за замовчуванням, якщо не представлений жоден з варіантів). unsigned - цільової тип буде мати беззнаковое уявлення.
short - цільової тип буде оптимізований за розміром і мати ширину не менше 16 біт. long - цільової тип буде мати ширину не менше 32 біт. long long - цільової тип буде мати ширину не менше 64 біт. (Починаючи з C ++ 11)
[Ред] Властивості
Дана таблиця узагальнює всі доступні цілочисельні типи і їх властивості:
Крім мінімального розміру в бітах стандарт C ++ гарантує, що
1 == sizeof # 40; char # 41; <= sizeof ( short ) <= sizeof ( int ) <= sizeof ( long ) <= sizeof ( long long ).
Примітка: можливий крайній випадок, в якому байти мають розмір 64 біта, всі типи (включаючи char) має ширину 64 біта, і sizeof повертає 1 для всіх типів.
Примітка: целочисленная арифметика визначається по-різному для знакових і беззнакових цілочисельних типів. Див. Арифметичні оператори. зокрема целочисленное переповнення.
[Ред] Моделі даних
Вибори розмірів фундаментальних типів в кожній реалізації в сукупності називаються моделлю даних. Широке застосування знайшли 4 моделі даних:
- LP32 або 2/4/4 (int - 16 біт, long і покажчик - 32 біта)
- Win16 API
- ILP32 або 4/4/4 (int, long і покажчик - 32 біта)
- Win32 API
- Unix і Unix-подібні системи (Linux, Mac OS X)
- LLP64 або 4/4/8 (int і long - 32 біта, покажчик - 64 біта)
- Win64 API
- LP64 або 4/8/8 (int - 32 біта, long і покажчик - 64 біта)
- Unix і Unix-подібні системи (Linux, Mac OS X)
Інші моделі дуже рідкісні. Наприклад, ILP64 (8/8/8. Int, long і покажчик - 64 біта) з'явилася лише в деяких ранніх 64-бітних Unix-системах (н-р, Unicos на комп'ютерах Cray).
[Ред] Типи з плаваючою точкою
float - тип з плаваючою точкою одинарної точності. Зазвичай 32-бітний тип з плаваючою точкою формату IEEE-754 double - тип з плаваючою точкою подвійної точності. Зазвичай 64-бітний тип з плаваючою точкою формату IEEE-754 long double - тип з плаваючою комою з високою точністю. Не обов'язково відображається на типи IEEE-754. Зазвичай 80-бітний тип з плаваючою точкою формату x87 на архітектурі x86 і x86-64.
[Ред] Проміжки значень
Дана таблиця містить граничні значення найбільш распространнёних числових форматів. Так як Стандарт C ++ дозволяє будь-яке представлення знакових цілих чисел, в таблиці присутні як мінімальні гарантовані обмеження (відповідні меж зворотного коду або прямого коду), так і межі найбільш використовуваної реалізації - додаткового коду. Проте, всі популярні моделі даних (включаючи всі з ILP32, LP32, LP64, LLP64) використовують уявлення в додатковому коді.