Pergunta

Olhando alguns códigos, percebi que outro desenvolvedor alterou todas as instâncias de true para !false.Por que você faria isso?THX

Foi útil?

Solução

Não há uma boa razão para escrever !false em vez de true.
Razões ruins podem incluir ofuscação (tornando o código mais difícil de ler), preferências pessoais, busca e substituição global mal considerada e travessuras convertendo valores booleanos em números inteiros.

É possível que alguma confusão tenha sido causada pelas definições TRUE e FALSE no Win32, que não são do tipo bool, mas ints, e que podem disparar avisos quando usadas em instruções booleanas.Principalmente, qualquer coisa diferente de zero é "verdadeiro", mas se você quiser ter certeza de que "verdadeiro" é sempre um ao usar números inteiros em vez de booleanos, às vezes você verá travessuras como esta.Ainda não é um bom motivo ;-)

Outras dicas

Não faço ideia e escrevo C ++ há um tempo. Eu suspeito que o que ele argumentar que eles não eram bons.

Eu acho que isso é uma coisa histórica. IIRC Havia um problema em alguns compiladores C/C ++ sabendo o que o compilador usaria para representar como verdadeiro. Você pode saber que False é zero, portanto! Falso será o que o ABI atual terá como verdadeiro.

Genericamente, isso é redundante, mas há alguns casos especiais em que é útil, mas não consigo pensar em um.

Pode ser necessário se a linha

#define true false

apenas ocorrido estar em algum lugar nos cabeçalhos :)

Talvez ele tenha tantas verdadeiras e falsas em seu código e quis revertê -lo facilmente, ele pode apenas usar a pesquisa e a substituição de seu editor,

Eu não sei, na verdade, mas pode ser verdade não é 1 (qualquer coisa> 0) e false é zero, então "não false" = 1, então ele estará em lugar seguro

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top