Domanda

Guardando un po 'di codice ho notato che un altro sviluppatore aveva cambiato ogni istanza di true in! false. Perché dovresti farlo? thx

È stato utile?

Soluzione

Non c'è una buona ragione per scrivere! false invece che true.
Cattive ragioni potrebbero includere l'offuscamento (che rende il codice più difficile da leggere), le preferenze personali, la malvagia ricerca e sostituzione globale e gli shenanigans che convertono valori booleani in numeri interi.

È possibile che una certa confusione sia stata causata dalle definizioni TRUE e FALSE in Win32, che non sono di tipo bool ma ints e che possono attivare avvisi quando vengono utilizzate in istruzioni booleane. Principalmente, qualsiasi cosa diversa da zero è "vero", ma se si desidera assicurarsi che "vero" è sempre uno quando si usano numeri interi anziché booleani, a volte si vedono gli shenanigani in questo modo. Non è ancora una buona ragione ;-)

Altri suggerimenti

Non ne ho idea e scrivo C ++ da un po '. Ho il sospetto che qualunque fosse la ragione per cui non fossero buoni.

Penso che questa sia una cosa storica. IIRC si è verificato un problema su alcuni compilatori C / C ++ che sapevano che cosa avrebbe usato il compilatore per rappresentare come vero. Puoi sapere che falso è zero quindi! Falso sarà qualunque cosa l'ABI corrente avrà come vero.

Generalmente questo è ridondante ma ci sono alcuni casi speciali in cui è utile ma non riesco a pensarne uno.

Potrebbe essere necessario se la linea

#define true false

solo è successo per essere da qualche parte nelle intestazioni :)

forse ha ottenuto così tanti veri e falsi nel suo codice e voleva annullarlo facilmente, può semplicemente usare la ricerca del suo editor e sostituirlo,

In realtà non lo so, ma potrebbe essere VERO non 1 (qualsiasi cosa > 0) e FALSO è zero quindi "non falso" = 1, quindi sarà in un posto sicuro

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