Domanda

    

Questa domanda ha già una risposta qui:

         

Quando una funzione C non accetta alcun argomento, ha a che essere dichiarate / definito con un parametro di "vuoto" dal regime linguistico? PC-Lint sembra avere problemi quando non c'è niente affatto nell'argomento-list, e mi chiedevo se è qualcosa che nella sintassi del linguaggio che io non so.

Modifica Ho appena trovato un duplicato (? Back-dupe è venuto prima) domanda, C argomenti vuoti , che ha più risposte e spiegazioni.

È stato utile?

Soluzione

vuoto significa che la funzione non accetta parametri. Ad esempio,

int init (void)
{
    return 1;
}

Questa non è la stessa come la definizione di

int init ()
{
    return 1;
}

, perché nel secondo caso il compilatore non verificare se la funzione è davvero chiamato senza argomenti a tutti; invece, una chiamata di funzione con un numero arbitrario di argomenti saranno accettate senza eventuali avvisi (questo è implementata solo per la compatibilità con la sintassi definizione della funzione vecchio stile, pre-ANSI).

Altri suggerimenti

IIRC func (void) in C sarà dichiarare una funzione che accetta parametri che func () dichiara una funzione che prendere qualsiasi numero di parametri. Credo che quest'ultimo è un artefatto proveniente dal pre-ANSI C.

Wikipedia qui, la dichiarazione di func () fa in pratica dichiarare la funzione "senza informazioni sui parametri".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top