2017-03-02 232 views
1

我有以下代码:错误:调用的对象不是一个函数或函数指针

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.为什么会出现这种情况?

+1

'2(x&y)'应该做什么? – UnholySheep

+5

更改为'2 *(x&y)' –

+0

哦Thx很多!!! –

回答

1

至于什么错误意味着:2(x&y)告诉编译器调用函数2,传递x&y作为一个参数(就像printf("hi")手段“呼叫printf并通过"hi"作为参数”)。

但是2不是一个函数,所以你得到一个类型错误。从句法上讲,只要你有一个值,然后是(,那就是一个函数调用。

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

您需要乘法运算符如果乘法是你想要的。

相关问题