Вопрос по parameters, declaration, c – Объявление параметров функции после имени функции

5
int func(x)
int x;
{
    .............

Как называется такая декларация?

Когда он действителен / недействителен, включая C или C ++, определенные стандартные редакции и компиляторы?

Ваш Ответ

5   ответов
12

Это синтаксис объявления параметров K & amp; R C, который действителен в ANSI C, но не в C ++.

+1 Действителен, но редко и не рекомендуется. :)
-8

Это прототип функции. Если вы делали это не так, вам пришлось бы полностью выписать функцию перед main, иначе компилятор не знал бы, что это была за функция, когда вы использовали ее в main. Он не очень описательный, поэтому он больше не используется. Вы хотите использовать что-то вроде:

int someFunction(int someParamX int someParamY);
Пример, приведенный в вопросе, на самом деле является функциейdefinitionобратите внимание на отсутствие точки с запятой послеint func(x).
Ничто не мешает определению функции иметь прототип. Но показанное определение функции не имеет прототипа. Так что я тоже -1
5

Это все еще действует, но это предварительно ANSI. Именно здесь стиль отступа K & R получил свое название. Открывающая скобка находится на строке после функционального блока, потому что это выглядит странно:

int func(x)
int x; {
...
}

Во всяком случае, этот стиль не рекомендуется из-запроблема с прототипами функций.

4

Стиль K & amp; R, и я думаю, что он все еще действителен, хотя и обескуражен. Вероятно, он пришел из Фортрана (где типы параметров функции определены внутри тела функции еще в недавнем F95)

4

Это старый стиль C. Его редко видели больше.

Похожие вопросы