Question

En regardant un code, j’ai remarqué qu’un autre développeur avait changé chaque occurrence de true en! false. Pourquoi ferais-tu ça? merci

Était-ce utile?

La solution

Il n'y a pas de bonne raison d'écrire! false au lieu de true.
Les mauvaises raisons peuvent inclure l’obscurcissement (rendant le code plus difficile à lire), les préférences personnelles, la recherche et le remplacement globaux mal considérés, et les manigances convertissant des valeurs booléennes en entiers.

Il est possible qu'une certaine confusion ait été causée par les définitions TRUE et FALSE de Win32, qui ne sont pas de type bool mais ints et qui peuvent déclencher des avertissements lorsqu'elles sont utilisées dans des instructions booléennes. Généralement, tout ce qui n'est pas nul est "vrai", mais si vous voulez vous assurer que "vrai" est toujours un lorsque vous utilisez des entiers au lieu de booléens, vous voyez parfois des manigances comme celle-ci. Ce n'est toujours pas une bonne raison ;-)

Autres conseils

Je n'en ai aucune idée et j'écris du C ++ depuis un moment. Je soupçonne quoi qu’il en soit qu’ils ne soient pas bons.

Je pense que c'est une chose historique. IIRC il y avait un problème sur certains compilateurs C / C ++, sachant ce que le compilateur utiliserait pour représenter comme vrai. Vous pouvez savoir que false est égal à zéro, donc false sera ce que l’ABI actuel aura comme vrai.

Généralement, cela est redondant, mais il existe quelques cas spéciaux dans lesquels cela est utile, mais je ne peux en penser à aucun.

Cela pourrait être nécessaire si la ligne

#define true false

Il suffit que se soit trouvé quelque part dans les en-têtes:)

peut-être qu'il a tellement de vrais et de faux dans son code et qu'il voulait l'inverser facilement, il peut simplement utiliser la recherche et le remplacement de son éditeur,

Je ne le sais pas vraiment mais je peux être VRAI n’est pas 1 (tout ce qui g & 0; 0) et FALSE est égal à zéro, donc "pas faux". = 1 afin qu'il soit en lieu sûr

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top