2010-10-22 14 views
9

Molte volte vedo nel codice open source che una chiamata a una funzione C viene inoltrata a void.La funzione di trasmissione ritorna a void

Ad esempio, nel codice sorgente per ls (http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ls/ls.c) Vedo il seguente .

(void) setlocale(LC_ALL, ""); 

Perché questa buona pratica?

+1

Per C++: http://stackoverflow.com/questions/689677/casting-unused-return-values-to-void –

risposta

13

Significa esplicitamente che ignori il valore restituito e non lo dimentichi.

+2

Alcuni analizzatori statici avvisano se un valore restituito viene silenziosamente ignorato e non avvisa quando si ignora esplicitamente colando a vuoto. Era più importante quando avevamo solo codici di errore e senza eccezioni ... –

+2

... C non ha ancora eccezioni, grazie al cielo. – nmichaels

+3

@Peter G .: questa domanda è codificata C. Non hanno ancora eccezioni. –

Problemi correlati