Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Базовый синтаксис 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');).

Комментарии

Нельзя вкладывать многострочные комментарии друг в друга. Внутри строковых/символьных литералов комментарии не работают.

Идентификаторы — правила именования

Примеры правильных: count, _private, MAX_SIZE, userName2, _.

Неправильные: 2name, my-name, int, user@name.

Соглашения по именованию (best practices)

СущностьСтильПример
Переменные / функцииsnake_caseuser_count, calculate_sum()
Константы / макросыUPPER_SNAKE_CASEMAX_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;

Токены:

  1. const — ключевое слово
  2. double — ключевое слово
  3. PI — идентификатор
  4. = — оператор присваивания
  5. 3.14159 — константа (float literal)
  6. ; — разделитель (терминатор)

Препроцессор — отдельный этап

Директивы препроцессора (#include, #define, #if) начинаются с # и обрабатываются до компиляции. Они не являются токенами языка C в строгом смысле, но являются токенами препроцессора.

Язык C

  1. Фундаментальные алгебраические тождества: аддитивные, мультипликативные и нулевые свойства
  2. Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
  3. Оператор break в C#: как и когда использовать
  4. Оператор continue в C#: как эффективно пропускать итерации циклов
  5. Оператор pass в Python: практическое руководство
  6. Основы Java: базовый синтаксис, классы, объекты и методы
  7. Понимание C++: базовый синтаксис и основы ООП
  8. Основы MATLAB: Синтаксис, команды и спецсимволы
  9. Основы C#: базовый синтаксис и концепции ООП
  10. Основы Python: Синтаксис и фундаментальные концепции