Я попытался найти документацию и Интернет как можно лучше, но мне не удалось заставить компилятор Xcode выдать предупреждение, если в операторе if используется оператор присваивания.
Я приехал из RealBasic, где у меня чрезвычайно сильная привычка вводить сравнение такого типа:
if x = 5 then ...
Конечно, в C этот синтаксис присваивает x значение 5, а затем проверяет результат, чтобы определить, ненулевой ли он, и "правильный" ли оператор:
if (x == 5) { ... }
Я обнаружил несколько упоминаний о том, что компилятор должен иметь возможность предупреждать, если в сравнении if выполнено присвоение, но я не могу найти, как включить его в Xcode 3.1 / gcc. Я нашел опцию -pedantic
, но это не выдает предупреждение.
Поскольку я дважды потратил довольно много времени на отслеживание ошибок, которые оказались "=" вместо "==", я бы хотел получить предупреждение.
Я знаю, что вместо этого могу сделать это (что приведет к ошибке компилятора):
if (5 = x) { ... }
... но это также требует изменения укоренившихся привычек кодирования. Не говоря уже о том, что оно выглядит неуклюжим и отсталым.
Спасибо!