Quote Originariamente inviata da MItaly Visualizza il messaggio
Sulla 2), mi permetto di aggiungere che tuttavia qualunque compilatore decente con warning attivati (e bisognerebbe avere sempre -Wall su gcc e simili e /W3 come minimo su VC++) emette un warning di livello grave per un assegnazione in un'espressione condizionale, per cui, almeno per quanto mi riguarda, evito le cosiddette "Yoda conditions", che trovo piuttosto innaturali sia da scrivere che da leggere.
Osservazione sicuramente sensata, ma purtroppo talune normative impongono esplicitamente l'uso di tale sintassi, e quindi l'uso di un checker segnalerà un warning in caso di "violazione della regola" ossia anteposizione del LValue.


Una cosa che è già stata postata come correzione ma non puntualizzata è l'uso dei codici ASCII "espliciti" nel codice, in questo caso il 32 (o 0x20) nel confronto: evitali. In C ci sono i literal di tipo char (carattere tra apici singoli) apposta, non c'è motivo per infarcire il codice di numeri magici incomprensibili.
Ottima occasione per ricordare come ancora molti grandi sistemi (anche ad uso accademico), che supportano appieno il linguaggio C, non usano ASCII ma altre codifiche, EBCDIC in testa... i literal del C devono sempre essere usati, a meno di solidi e documentati motivi che facciano propendere per il contrario.