dichiarazioni di variabili C dopo rubrica funzione nella definizione [duplicato]
Domanda
Questa domanda ha già una risposta qui:
Durante la lettura del codice di FreeBSD sorgente (See: radix.h linee 158-173), ho trovato dichiarazioni di variabili che hanno seguito la 'funzione di intestazione' nella definizione.
E 'questo valido ISO C (C99)? quando questo dovrebbe essere fatto in codice di produzione invece di dichiarare le variabili all'interno del "intestazione della funzione?" Perché è stato fatto qui?
Mi riferisco alla funzione voce la stringa che assomiglia a questo: int someFunction(int i, int b) {
Soluzione
che si presenta come K & R (pre-ANSI) stile. Io non credo che sia C99 valida, ma stanno usando C99? Joel
Altri suggerimenti
Credo che lei si riferisce al modo in cui "vecchio stile" pre-ANSI di dichiarare parametri in C. Sembrava qualcosa di simile:
int foo(a, b)
int a,
int b
{
/* ... */
}
che possono ancora essere valido in C99, e verrà accettato da compilatori per motivi di compatibilità con le versioni, ma deve essere considerato deprecato / arcaica.
Er. Forse sto malinteso tua domanda, ma i
e b
in quel frammento sono parametri alla funzione. Non è un modo compatto di dichiarare variabili all'interno della funzione, come:
int someFunction() {
int i, b;
Quando si chiama someFunction
, si passa questi argomenti:
someFunction(1, 2); // `i` will be `1` and `b` `2` within `someFunction`