В других ответах и комментариях упоминается несколько причин, по которым это ужасный, вводящий в заблуждение и плохо написанный вопрос.Но есть еще одна проблема, которую еще никто не определил.Вопрос в следующем:
Точка с запятой (';') не нужна после объявления функции.Верно или неверно.
ОК, давайте посмотрим на объявление функции:
int func(); /* */
/* ^ */
/* | */
/* That whitespace is "after the function declaration". */
Все это объявление .Объявление не int func()
, а затем , за которым следует a ;
.Объявление int func();
, за которым следует пробел.
Итак, вопрос в том: нужна ли точка с запятой после объявления ?Конечно, нет. В декларации уже есть точка с запятой, которая заканчивает его. Точка с запятой после объявления будет бессмысленной.Напротив, int func(); ;
будет точкой с запятой после объявления функции .
Вопрос почти наверняка был предназначен , чтобы задать вопрос "истина или ложь: последниймаркер в объявлении функции - это всегда точка с запятой. «Но это не тот вопрос, который они написали, потому что автор теста не задумывался о проблеме».
Мой совет - вообще избегать тестов по языку программирования.Они довольно ужасные.
Забавный факт, пока мы обсуждаем эту тему.В C # все они допустимы:
class C {}
class D {};
struct E {}
struct F {};
В C # объявление класса или структуры может заканчиваться точкой с запятой или нет по вашему усмотрению.Эта странная небольшая функция была добавлена в пользу программистов на C / C ++, пришедших на C #, которые имеют под рукой, чтобы объявления типов заканчивались бессмысленной точкой с запятой;команда разработчиков не хотела наказать их за эту привычку.: -)