Ricordo di aver letto prima il significato (o la sua mancanza) tra l'inclusione di un nome parametro in una dichiarazione di funzione e non l'inclusione di uno. Ma non riesco a ricordare cosa ho letto o dove l'ho letto.Qual è la differenza tra includere un nome parametro in una dichiarazione di funzione e non includerne uno?
per esempio,
void do_something(int *); // No parameter name included, only type.
vs ...
void do_something(int * i); // type AND parameter name included.
Allora, qual è la differenza tra queste due dichiarazioni? Grazie per la lettura e forse per rispondere a questa domanda forse banale.
- AGGIORNAMENTO -
Okay, quindi la cosa che avevo letto era un insieme di linee guida di stile da un vecchio professore mio avvertimento contro tra cui un nome parametro nella definizione di funzione e non utilizzando il parametro nella funzione .
void do_something(int * i) { //code that doesn't use i;} //BAD
void do_something(int *) { //code that doesn't use i;} //OK
I macro sono una specie di male, quello con collisioni di nomi, più valutazioni di argomenti, ecc. Talvolta sono praticamente necessari, ma è una buona idea evitarli in generale. Quindi, usa meglio il template della funzione 'unusedParam'. Cioè, se non puoi vivere con gli avvertimenti. Saluti, –
D'accordo, i macros sono cattivi. Ma IMO, qualsiasi codice che esiste solo per dire "sì, non sto facendo nulla con questo argomento. Stai zitto, stupido compilatore!" non è molto meglio – cHao
Ecco perché esiste la sintassi '(void) argName;'. Questo dice al compilatore che "argName" è "usato", sebbene valuti come no-op. –