Mail Archives: djgpp/1998/06/15/12:21:07
On Mon, 15 Jun 1998 17:51:07 +0300 (IDT), Eli Zaretskii wrote:
>There are several problems here. First, compiling this as a C program
>didn't produce the warning you were complaining about. So I suspect you
>compiled this as a C++ program, which you should have mentioned. I'm
>quite sure that C++ produces an int from sLine|overwrite, and then
>objects to passing an int to a function which expects an enum. But I'm
>not knowledgeable about C++ enough to tell for sure. Anybody?
This is a C++ program.. I don't understand why C++ would act
differently from C on this point since this 'feature' is derived from C
in the first place.
>Second, what exactly did you expect from an expression like this:
>
> if (choice|dLine==dLine)
>
>At least in C, the == operator has higher precedence than the | operator,
>so this is parsed as "if (choice | (dLine == dLine))", which is hardly
>what you wanted to say... Even if C++ changes that, I suggest to use
>explicit parentheses.
I was unaware of that.. What I meant was "if ((choice|dLine) ==
dLine)"
Gili
- Raw text -