Является ли определение функции declaration statement?

Насколько я знаю определение - это объявление, которое полностью описывает сущность. То есть в моём понимании вот это выражение: int a; - объявление, а это: int a = 10; - определение. Так вот прочитав статью в этом источнике, я понял что и то и то является declaration statement. Пример прямо из статьи:

int n = 1; // declaration statement

Так вот, исходя из вышесказанного я провел аналогию с функциями. И теперь вопрос, который меня волнует: можно ли определение функции:

int foo()
{ return 0; }

назвать declaration statement? Если нет, то какой термин этому соответствует?

P. S. извиняюсь за принципиальность, но для меня очень важно это понять.


Ответы (1 шт):

Автор решения: HolyBlackCat

Почитал грамматику.

Это не declaration statement и вообще не statement.

Statement-ы могут находится только в телах функций. Тела состоят из последовательности statement-ов и только из них, поэтому там даже объявления считаются statement-ами.

Снаружи функций объявления являются просто объявлениями.

Если нет, то какой термин этому соответствует?

Мне кажется никакой. Это просто объявления/определения.

→ Ссылка