Pregunta

Al observar un código, noté que otro desarrollador había cambiado cada instancia de true a! false. ¿Por qué harías eso? gracias

¿Fue útil?

Solución

No hay una buena razón para escribir! false en lugar de true.
Las malas razones pueden incluir ofuscación (lo que hace que el código sea más difícil de leer), preferencias personales, malas funciones de búsqueda y reemplazo global y shenanigans que convierten valores booleanos en enteros.

Es posible que alguna confusión haya sido causada por las definiciones TRUE y FALSE en Win32, que no son de tipo bool sino de ints, y que pueden desencadenar advertencias cuando se usan en declaraciones booleanas. Principalmente, cualquier cosa que no sea cero es " true " ;, pero si desea asegurarse de que " true " siempre es uno cuando se usan números enteros en lugar de booleanos, a veces se ven chanchullos como este. Todavía no es una buena razón ;-)

Otros consejos

No tengo idea y he estado escribiendo C ++ por un tiempo. Sospecho que cualesquiera que sean las razones por las que no eran buenas.

Creo que esto es algo histórico. IIRC hubo un problema en algunos compiladores C / C ++ al saber lo que el compilador usaría para representar como verdadero. Puede saber que falso es cero, por lo tanto, falso será lo que el ABI actual tendrá como verdadero.

En general, esto es redundante, pero hay algunos casos especiales en los que es útil, pero no puedo pensar en uno.

Podría ser necesario si la línea

#define true false

simplemente pasó a estar en algún lugar de los encabezados :)

tal vez obtuvo tanta verdad y falsa en su código y quería revertirlo fácilmente, solo puede usar la búsqueda y reemplazo de su editor,

En realidad, no sé, pero puede ser VERDADERO no es 1 (cualquier cosa > 0) y FALSO es cero, por lo que " no es falso " = 1 por lo que estará en un lugar seguro

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top