2009-07-20 5 views

ответ

5

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

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

Во всяком случае, этот стиль не рекомендуется из-за a problem with function prototypes.

4

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

4

Это старомодный C. Это редко встречается.

12

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

+2

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

-8

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

int someFunction(int someParamX int someParamY); 
+0

Приведенный в вопросе пример - это функция * definition *, обратите внимание на отсутствие точки с запятой после 'int func (x)'. –

+0

Нет ничего, что останавливает определение функции от прототипа. Но показанное определение функции не имеет прототипа. Итак, у меня тоже –