В версии С89 определено 32 ключевых слова.
auto — Спецификатор типа для указания компилятору локальной области видимости переменной(по умолчанию)
break — Оператор выхода из цикла
case — Оператор указания варианта выбора(используется вместе с switch)
char — Символьный тип данных
const — Объекты типа const не могут быть изменены программой во время её выполнения
continue — Оператор продолжения цикла с пропуском оставшихся операторов до конца блока
default — Оператор выбора по умолчанию
do — Оператор цикла с постусловием без счётчика
double — Тип данных с плавающей запятой двойной точности
else — Условный оператор "в противном случае"
enum — Пользовательский тип данных "перечисляемый тип"
extern — Спецификатор типа для указания компилятору внешней привязки переменной
float — Тип данных с плавающей запятой
for — Оператор цикла с предусловием, с счётчиком
goto — Оператор безусловного перехода
if — Условный оператор "если"
int — Целочисленный тип данных
long — Модификатор типа данных для определения длинных переменных
register — Спецификатор типа для хранения переменной в регистрах процессора
return — Оператор для возврата из функции значения
short — Модификатор типа данных для определения коротких переменных(обычно не используется)
signed — Модификатор типа данных для определения знаковых переменных
sizeof — Оператор служащий для определения размера типа данных во время компиляции
static — Указывает компилятору хранить локальную переменную во время всего жизненного цикла программы
struct — Пользовательский тип данных "структура"
switch — Оператор выбора
typedef — Оператор для создания нового имени типа данных
union — Пользовательский тип данных "объединение"
unsigned — Модификатор типа данных для определения беззнаковых переменных
void — Пустой тип данных
volatile — Квалификатор типа сообщает компилятору, что значение переменной может быть изменено средствами, заданными в программе неявным образом
while — Оператор цикла с предусловием, без счётчика
В языке C++ содержатся все ключевые слова, определенные в версии С89, а также следующие.
asm — Ключевое слово для вставки одной или нескольких инструкций ассемблера
bool — Логический тип данных (версия C++)
catch — Блок программы которая содержит ту часть программы, которая обрабатывает ошибку
class — Пользовательский тип данных "класс"
const_cast — Оператор привидения типа, используется для явного переопределения модификаторов const и/или volatile
delete — Оператор освобождает память на которую указывает аргумент
dynamic_cast — Оператор привидения типа, проверяет законность выполнения заданной операции приведения типа
explicit — Конструктор, определённый с помощью спецификатора expliclt, будет использоваться только в том случае, если инициализация в точности совпадает с тем, что задано конструктором
export — Ключевое слово, позволяющее другим файлам использовать шаблон, объявленный в другом файле путём задания лишь его объявления.
false — Логическая константа, имеющую значение "ложь".
friend — Ключевое слово определяет дружественные функции или классы
inline — Спецификатор используемый для помещения тела функции непосредственно в текст программы
mutable — Спецификатор типа позволяет члену некоторого объекта переопределить свойство постоянства
namespace — Ключевое слово для создания пространства имён
new — Оператор выделяет динамическую память и возвращает указатель соответствующего типа на эту область памяти
operator — Ключевое слово operator используется для создания перегруженных функций-операторов
private — Спецификатор доступа "приватный", определяющий способ наследования базового класса
protected — Спецификатор доступа "защищённый", определяющий способ наследования базового класса
public — Спецификатор доступа "открытый", определяющий способ наследования базового класса
reinterpret_cast — Оператор привидения типа, переводит один тип в совершенно другой
static_cast — Оператор привидения типа, выполняет не полиморфное приведение типов
template — Ключевое слово template используется для создания обобщённых функций и классов
this — Используется для обозначения указателей на объект, который сгенерировал обращение к функции-члену
throw — Оператор throw генерирует исключение
true — Логическая константа, имеющую значение "истина"
try — Блок программы которая содержит ту часть программы, которая предназначена для обработки ошибок
typeid — Оператор typeid возвращает ссылку на объект type_info, описывающий тип объекта, к которому принадлежит оператор typeid
typename — Ключевое слово, которое можно использовать вместо ключевого слова class в объявлении template или для обозначения неопределённого типа
using — Переносит переменную из определённого пространства имён в глобальную область видимости переменных
virtual — Спецификатор типа определяющий виртуальные функции
wchar_t — Символьный двухбайтовый тип данных
В более старых версиях языка C++ было также определено ключевое слово overload, но сейчас оно не используется. Все ключевые слова состоят только из строчных букв.
В версии С99 содержаться все ключевые слова, определённые в версии C99, а также следующие.
_Bool — Логический тип данных (версия C99)
_Complex — Тип данных для работы с комплексными числами
_Imaginary — Тип данных для работы с комплексными числами
inline — Спецификатор inline сообщает компилятору о намерении программиста поместить тело функции непосредственно в текст программы
restrict — Указатель с атрибутом restrict является изначально единственным средством, позволяющим получить доступ к объекту, на который он указывает