Я бы хотел включить -Wfloat-equal в моих параметрах сборки (это флаг GCC, который выдает предупреждение, когда два числа с плавающим указателем сравниваются с помощью операторов == или! =).Тем не менее, в нескольких заголовочных файлах библиотек, которые я использую, и в хорошей части моего собственного кода, я часто хочу переходить к ненулевым значениям типа float или double, используя if (x)
или if (x != 0)
или их варианты.
Поскольку в этих случаях я абсолютно уверен, что значение точно равно нулю - проверенные значения являются результатом явной инициализации нуля, calloc
и т. Д. - я не вижу недостатка в использовании этого сравнения, скореечем значительно более дорогой и менее читаемый вызов моей функции near(x, 0)
.
Есть ли способ получить эффект -Wfloat-equal
для всех других видов сравнений равенства с плавающей запятой, но разрешить их пропускать без пометок?В заголовочных файлах библиотек их достаточно, чтобы они могли сильно загрязнить вывод моих предупреждений.