J'ai essayé de rechercher la documentation et l'Internet du mieux que je peux, mais je n'ai pas réussi à obtenir un avertissement du compilateur Xcode si l'opérateur d'affectation est utilisé dans une instruction if.Comment demander au compilateur Xcode 3.1 d'avertir l'opérateur d'affectation dans une instruction if?
Je viens de RealBasic, où j'ai une habitude extrêmement forte de taper ce genre de comparaison:
if x = 5 then ...
En C, bien sûr, que la syntaxe attribue x la valeur de 5 puis des tests le résultat pour voir si elle est différente de zéro, et l'opérateur « correct » est:
if (x == 5) { ... }
J'ai trouvé plusieurs mentions que le compilateur devrait être en mesure d'avertir en cas d'une cession effectuée dans un cas de comparaison, mais je ne trouve pas comment l'activer dans Xcode 3.1/gcc. J'ai trouvé l'option -pedantic
, mais cela n'a pas semblé générer l'avertissement.
Depuis que j'ai passé deux fois plus de temps à repérer les bogues qui se sont révélés être "=" au lieu de "==", j'aimerais recevoir un avertissement.
Je sais que je peux le faire à la place (ce qui provoquera une erreur du compilateur):
if (5 = x) { ... }
... mais qui nécessite de changer les habitudes de codage bien ancrées, aussi. Sans oublier qu'il a l'air maladroit et arriéré.
Merci!
Ce drapeau n'a pas fonctionné pour moi. J'ai ce code: 'if (newlyCreated = true) {goToLastElement = true; } 'et bien que l'indicateur soit activé, xcode/g ++ n'émet pas d'avertissement. (note: code C++.) –
Je viens de découvrir qu'il ne fonctionne pas pour les variables 'bool': / –