我有以下代码:
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.为什么会这样?
答案 0 :(得分:1)
更改
z=(x^y)+2(x&y);
到
z=(x^y)+2*(x&y);
和
z=2(x|y)-(x^y);
到
z=2*(x|y)-(x^y);
如果乘法符合您的预期,则需要乘法运算符。
答案 1 :(得分:1)
关于错误的含义:2(x&y)
告诉编译器调用函数2
,将x&y
作为参数传递(就像printf("hi")
表示“致电printf
并传递"hi"
作为参数“)。
但2
不是函数,因此会出现类型错误。从语法上讲,只要你有一个值后跟(
,那就是函数调用。