Недопустимый аргумент типа унарного '*' (есть int? - PullRequest
1 голос
/ 07 декабря 2011

Я читал другие вопросы, подобные этому, но ни один из них не работал ... Мой код:

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’)

Что делать?КСТАТИ ПИ ОПРЕДЕЛЕН

Ответы [ 3 ]

6 голосов
/ 07 декабря 2011

Скорее всего, у вас есть линия

#define PI

где-то, что делает ваш код эквивалентным:

integer3=*(1/4)*....

и это не скомпилируется. Замените его, например,

#define PI 3.1416

Обратите внимание, что (1/4) будет оцениваться как 0, потому что целочисленное деление возвращает целое число. вы, вероятно, хотите использовать 1.0/4.0.

0 голосов
/ 07 декабря 2011

Определен ли PI?Я держу пари, что это пусто.Кстати, (1/4) даст вам ноль, а все ваше выражение будет равно нулю.

0 голосов
/ 07 декабря 2011

Сначала необходимо объявить значение для PI.

...