Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы
Токены (лексемы)
Токен — наименьшая значимая единица программы. В C токены делятся на 5 категорий:
| Категория | Примеры |
|---|---|
| Ключевые слова | int, return, if, while, struct... |
| Идентификаторы | main, count, _temp, MAX_SIZE |
| Константы (литералы) | 42, 3.14, 'A', "Hello", 0xFF |
| Строковые литералы | "Hello, World!\n" |
| Символы-разделители / операторы | ;, ,, (, ), {, }, +, -, *, /, =, ==... |
Пример: printf("Hello, World! \n"); состоит из токенов: printf ( "Hello, World! \n" ) ;
Точка с запятой — терминатор оператора
В C каждый оператор заканчивается точкой с запятой;. Это не разделитель, а завершающий символ.
int a = 10; // оператор объявления с инициализацией
a = a + 5; // оператор присваивания
func(); // оператор вызова функции (выражение-оператор)
;
Пустой оператор — просто ; (полезен в циклах: while (getchar() != '\n');).
Комментарии
- Однострочные:
// комментарий до конца строки(начиная с C99). - Многострочные:
/* комментарий *\ на несколько строк */.
Нельзя вкладывать многострочные комментарии друг в друга. Внутри строковых/символьных литералов комментарии не работают.
Идентификаторы — правила именования
- Начинаются с буквы (
A-Z,a-z) или подчёркивания_. - Содержат буквы, цифры (
0-9), подчёркивания. - Чувствительны к регистру:
count,Count,COUNT— три разных имени. - Не могут совпадать с ключевыми словами.
- Длина не ограничена стандартом, но компиляторы могут иметь лимиты (обычно > 4095).
Примеры правильных: count, _private, MAX_SIZE, userName2, _.
Неправильные: 2name, my-name, int, user@name.
Соглашения по именованию (best practices)
| Сущность | Стиль | Пример |
|---|---|---|
| Переменные / функции | snake_case | user_count, calculate_sum() |
| Константы / макросы | UPPER_SNAKE_CASE | MAX_BUFFER_SIZE, PI |
| Типы (struct, enum, typedef) | PascalCase или _t суффикс | Node, size_t, file_handle_t |
| Приватные (static) глобальные | префикс _ или s_ | _internal_counter |
Ключевые слова (зарезервированные)
Не могут использоваться как идентификаторы. Стандарт C11 (32 слова):
auto break case char const continue default do
double else enum extern float for goto if
inline int long register restrict return short signed
sizeof static struct switch typedef union unsigned void
volatile while _Alignas _Alignof _Atomic _Bool _Complex _Generic
_Imaginary _Noreturn _Static_assert _Thread_local
C23 добавляет: constexpr, nullptr, typeof, typeof_unqual.
Часто используемые как расширения компиляторов: asm, fortran (GCC).
Пробелы (whitespace)
Пробелы, табы, новые строки, комментарии — это пробелы. Компилятор их игнорирует, кроме как разделителей между токенами.
int age = 25 ; // то же, что: int age = 25;
Где пробел обязателен: между ключевым словом и идентификатором (int age, не intage).
Где пробел не нужен: вокруг операторов (a=b = a = b), после (, перед ), ;, ,.
Пример: токенизация строки
const double PI = 3.14159;
Токены:
const— ключевое словоdouble— ключевое словоPI— идентификатор=— оператор присваивания3.14159— константа (float literal);— разделитель (терминатор)
Препроцессор — отдельный этап
Директивы препроцессора (#include, #define, #if) начинаются с # и обрабатываются до компиляции. Они не являются токенами языка C в строгом смысле, но являются токенами препроцессора.
Язык C
- Фундаментальные алгебраические тождества: аддитивные, мультипликативные и нулевые свойства
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Оператор break в C#: как и когда использовать
- Оператор continue в C#: как эффективно пропускать итерации циклов
- Оператор pass в Python: практическое руководство
- Основы Java: базовый синтаксис, классы, объекты и методы
- Понимание C++: базовый синтаксис и основы ООП
- Основы MATLAB: Синтаксис, команды и спецсимволы
- Основы C#: базовый синтаксис и концепции ООП
- Основы Python: Синтаксис и фундаментальные концепции