Я ищу флаг компилятора для gcc и, если возможно, для clang и компиляторов Microsoft, который запускает предупреждение (ошибка с -Werror
), если функция не-void вызывается без использования возвращаемого значения, как это:Как обеспечить использование возвращаемых значений в C
int test() {
return 4;
}
int main(void) {
test(); //should trigger a warning
int number = test(); //shouldn't trigger the warning
return 0;
}
Если нет такого компилятора флаг, может быть какой-то способ сказать лязг статический анализатор сетовать об этом.
EDIT: Чтобы уточнить мой первоначальный вопрос: на самом деле я имел в виду использование возвращаемого значения, а не только его назначение.
Примечание. Используйте 'int main (void)' вместо 'void'. , – ameyCU
Это вызовет массу ненужных предупреждений. Например, каждый вызов 'printf()' генерирует жалобу - они возвращают количество напечатанных символов, но никто не заботится. – Barmar
@Barmar, я мог видеть, где это может быть удобно для не-библиотечных функций. Когда я добавляю возвращаемое значение к ранее недействительной функции, я должен изменить остальную часть подписи, чтобы выследить все места, которые ее используют. – Leeor