error: вызываемый объект не является указателем функции или функции

У меня есть следующий код:

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

Вам нужен оператор умножения, если умножение – это то, что вы намеревались.