Модуль: Инструкции и структура программы на C++


Задача

7 /8


Синтаксис и синтаксические ошибки


В английском языке предложения строятся в соответствии с определенными грамматическими правилами, которые вы наверняка изучали на уроках английского в школе. Например, обычные предложения заканчиваются точкой. Правила, регулирующие построение предложений в языке, называются синтаксисом.

Если вы забыли точку и соединили два предложения вместе, это нарушение синтаксиса английского языка. У C++ тоже есть синтаксис: правила о том, как должны быть построены ваши программы, чтобы считаться корректными. Когда вы компилируете свою программу, компилятор отвечает за то, чтобы ваша программа следовала основному синтаксису языка C++. Если вы нарушите какое-либо правило, то при попытке скомпилировать программу компилятор выдаст синтаксическую ошибку.

Давайте посмотрим, что произойдет, если мы опустим точку с запятой в строке 5 программы "Hello world", как показано ниже:



Компилятор выдаст следующую ошибку (но может быть и другое сообщение об ошибке с другой формулировкой):
Ошибка компиляции: 
: In function 'int main()':
:5:31: error: expected ';' before 'return'
    5 |    std::cout << "Hello world!"
      |                               ^
      |                               ;
    6 |    return 0;
      |    ~~~~~~              

Это означает, что у вас есть синтаксическая ошибка в строке 6: компилятор ожидал точку с запятой перед оператором return, но не нашел ее. Хотя компилятор сообщит вам, какую строку кода он компилировал, когда обнаружил синтаксическую ошибку, на самом деле пропуск может быть в предыдущей строке. В этом случае ошибка фактически находится в конце строки 5 (компилятор не обнаружил проблему до строки 6).

При написании программы синтаксические ошибки встречаются часто. К счастью, их обычно легко найти и исправить, поскольку компилятор обычно указывает вам прямо на них. Компиляция программы завершится только после устранения всех синтаксических ошибок.

Вы можете попробовать удалить символы или даже целые строки из программы «Hello world», чтобы увидеть различные типы возникающих ошибок. Попробуйте восстановить отсутствующую точку с запятой в конце строки 5, а затем удалите строки 1, 3 или 4 и посмотрите, что произойдет.

time 1000 ms
memory 256 Mb

Комментарий учителя