2017-03-02 229 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); 

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

相關問題