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

lak*_*m99 1 c int unary-operator

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

int flowRateFormula(int pipeDiameter,double velocity)
{
int integer3;

integer3=PI*(1/4)*(pow(pipeDiameter,2))*velocity;

return integer3;

 }
Run Code Online (Sandbox Code Playgroud)

错误是:

flowRate.c: In function ‘flowRateFormula’:
flowRate.c:38:13: error: invalid type argument of unary ‘*’ (have ‘int’)
Run Code Online (Sandbox Code Playgroud)

该怎么办?BTW PI是定义的

int*_*jay 6

很可能你有这条线

#define PI
Run Code Online (Sandbox Code Playgroud)

某处,这会导致您的代码等效于:

integer3=*(1/4)*....
Run Code Online (Sandbox Code Playgroud)

这无法编译.用例如替换它

#define PI 3.1416
Run Code Online (Sandbox Code Playgroud)

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