유재영
유재영

Reputation: 261

error: called object is not a function or function pointer

I have the following code:

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

I get this error message:

10:11: error: called object is not a function or function pointer 
z=(x^y)+2(x&y); 
        ^ 

The language is C. Why did this happen?

Upvotes: 1

Views: 5874

Answers (2)

melpomene
melpomene

Reputation: 85757

As for what the error means: 2(x&y) tells the compiler to call the function 2, passing x&y as an argument (just like printf("hi") means "call printf and pass "hi" as an argument").

But 2 isn't a function, so you get a type error. Syntactically speaking, whenever you have a value followed by (, that's a function call.

Upvotes: 1

anaotha
anaotha

Reputation: 613

Change

z=(x^y)+2(x&y);

to

z=(x^y)+2*(x&y);

and

z=2(x|y)-(x^y);

to

z=2*(x|y)-(x^y);

You need the multiplication operator if multiplication is what you intended.

Upvotes: 1

Related Questions