一元'*'的类型参数无效(有int吗?

时间:2011-12-07 18:19:23

标签: c int unary-operator

我已经阅读过这样的其他问题,但似乎都没有... 我的代码是:

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

怎么办? BTW PI已定义

3 个答案:

答案 0 :(得分:6)

很可能你有这条线

#define PI

某处,导致您的代码等同于:

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

这无法编译。将其替换为例如

#define PI 3.1416

另请注意,(1/4)将被计算为0,因为整数除法返回一个整数。你可能想用1.0/4.0

答案 1 :(得分:0)

您需要先为PI声明一个值。

答案 2 :(得分:0)

是否定义了PI?我打赌它是空的。 BTW,(1/4)会给你零,使你的整个表达式为零。