Недопустимый аргумент типа унарного '*' (есть int?
Я читал другие вопросы, как этот, но ни один из них не работал... Мой код:
int flowRateFormula(int pipeDiameter,double velocity)
{
int integer3;
integer3=PI*(1/4)*(pow(pipeDiameter,2))*velocity;
return integer3;
}
И ошибка:
flowRate.c: In function ‘flowRateFormula’:
flowRate.c:38:13: error: invalid type argument of unary ‘*’ (have ‘int’)
Что делать? Кстати, PI определен
3 ответа
Решение
Скорее всего, у вас есть линия
#define PI
где-то, что делает ваш код эквивалентным:
integer3=*(1/4)*....
и это не в состоянии скомпилировать. Замените его, например, на
#define PI 3.1416
Обратите внимание, что (1/4)
будет оценено как 0, потому что целочисленное деление возвращает целое число. вы, вероятно, хотите использовать 1.0/4.0
,
Определен ли PI? Я держу пари, что это пусто. Кстати, (1/4) даст вам ноль, делая все ваше выражение ноль.