2012-04-27 8 views
6

Powiel możliwe:
C function syntax, parameter types declared after parameter listW języku C, co to znaczy, kiedy zmienna jest zadeklarowana pomiędzy nagłówkiem funkcji a treścią?

już kilka razy, z jaką się spotkałem kod tak:

int 
main(argc, argv) 
int argc; char **argv; 
{ 
    ... 
} 

Dlaczego argc i argv zadeklarowane w ten sposób?

+4

Oznacza to, że zostało napisane około 1987 roku. –

+0

@ MichaelBurr: To rzeczywiście wygląda na duplikat. Głosowanie w celu zamknięcia. –

Odpowiedz

12

To była składnia, która była używana na listach parametrów K & R * style.

* K & R - Brian Kernighan i Dennis Ritchie, autorzy książki "The C Programming Language."
Dennis Ritchie był także twórcą języka programowania C oraz Kenem Kernsem, systemem operacyjnym UNIX.

+0

Czy dzisiaj jest jakaś korzyść z używania stylu K & R? Opublikowany link zaleca styl ANSI. –

+2

Nawet jeśli Twój kompilator nadal go obsługuje, nie używaj tego stylu do nowego kodu. Nie mogę tego wystarczająco mocno podkreślić. Ponadto zaktualizowałem link do Wikipedii, który jest bardziej pouczający na temat stylu i historii. –

+2

Nie ma żadnej korzyści. Jest to stary, przedwstępny styl C, a mimo że jest nadal obsługiwany, jest uważany za przestarzały. –