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) {

È stato utile?

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`
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top