错误:被调用的对象不是函数或函数指针
我有以下代码:
z=x-~y-1; printf("%d",z); z=(x^y)+2(x&y); printf("%d",z); z=(x|y)+(x&y); printf("%d",z); z=2(x|y)-(x^y); printf("%d",z);
我收到此错误消息:
10:11: error: called object is not a function or function pointer z=(x^y)+2(x&y); ^
语言是C.为什么会这样?
至于错误的含义: 2(x&y)
告诉编译器调用函数2
,将x&y
作为参数传递(就像printf("hi")
意思是“ 调用printf
并传递"hi"
作为参数 ”)。
但是2
不是函数,因此会出现类型错误。 从语法上讲,每当你有一个值后跟(
,这是一个函数调用。
更改
z=(x^y)+2(x&y);
至
z=(x^y)+2*(x&y);
和
z=2(x|y)-(x^y);
至
z=2*(x|y)-(x^y);
如果乘法是你想要的,你需要乘法运算符。