Hello I am new to programming and I am writing a program in C.
In my header file I have this macro:
#define yesno(c) (c==ENTER || c==' ' || c=='\t') ? ENTER : ESC
In my program I have this code
char keypressed()
{ char c;
c =getch();
return yesno(getch());
}
So what I wanted to ask is why when I ask to return yesno(c) I have to press the button only once, while when I use return yesno(getch()) I have to press the button one two or three more times?
Is there a problem with getch() when called from a macro?
because when you use
It expands to :
When the macro is expanded like this, it means that
getch()could actually be called 1, 2 or 3 times because the logical||means:If you use the
gcccompiler you can find out what your macro expands to by using the-Eflag: