469,891 Members | 2,288 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,891 developers. It's quick & easy.

Confused - suggest parentheses around assignment used as truth value

Hi all,

I'm new to C and kind of confused on this.
I've had a look around this group for suggestions but still not sure
why the warning is occurring.

What I've done is this
<code snip>
void foo(char loc)
{
...
if (loc == 'u') <- warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}
}
>From some responses, it was suggested to add ( ) around the comparion,
which I tried.

void foo(char loc)
{
...
if ((loc == 'u')) <- still get warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}
}

Even after placing in the 2nd ( ) around my comparison, gcc -Wall is
still giving me the waring.
Can anyone shed some light on this please ?
TIA

Nat

Apr 17 '07 #1
6 16611
In article <11**********************@d57g2000hsg.googlegroups .com>,
<na****@yahoo.com.auwrote:
if (loc == 'u') <- warning: suggest parentheses around
assignment used as truth value
Do you really have that? Are you sure you don't have

if(loc = 'u')

?

-- Richard
--
"Consideration shall be given to the need for as many as 32 characters
in some alphabets" - X3.4, 1963.
Apr 17 '07 #2
na****@yahoo.com.au wrote:
Hi all,

I'm new to C and kind of confused on this.
I've had a look around this group for suggestions but still not sure
why the warning is occurring.

What I've done is this
<code snip>
Please post the actual code, not a paraphrase. (If it's
in the middle of a ten thousand line program you needn't post
the entire thing; whittle it down to a minimal *complete*
chunk of code that demonstrates the problem.)

How do I know you've paraphrased? Here's one clue:
for (i=0, i<=max; i++)
--
Eric Sosman
es*****@acm-dot-org.invalid
Apr 17 '07 #3
On 17 Apr, 13:06, nat...@yahoo.com.au wrote:
Hi all,

I'm new to C and kind of confused on this.
I've had a look around this group for suggestions but still not sure
why the warning is occurring.

What I've done is this
<code snip>
void foo(char loc)
{
...
if (loc == 'u') <- warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}

}
From some responses, it was suggested to add ( ) around the comparion,

which I tried.

void foo(char loc)
{
...
if ((loc == 'u')) <- still get warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}

}

Even after placing in the 2nd ( ) around my comparison, gcc -Wall is
still giving me the waring.
Can anyone shed some light on this please ?
TIA

Nat
I'd suggest checking

a) That you really do have "if (loc == 'u')" and absolutely definitely
do not have "if (loc = 'u')";

b) That "loc" is not a #define or the like. What happens if you change
the variable name to something else?

c) That the line you are carefully examining is indeed the same line
that the compiler is complaining about - sometimes line numbering goes
a bit odd. What happens if you comment it out?

Hope these help you track down the problem...
Paul.

Apr 17 '07 #4
On Apr 18, 7:48 am, gw7...@aol.com wrote:
On 17 Apr, 13:06, nat...@yahoo.com.au wrote:
What I've done is this
<code snip>
void foo(char loc)
{
...
if (loc == 'u') <- warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}
}
>From some responses, it was suggested to add ( ) around the comparion,
which I tried.
void foo(char loc)
{
...
if ((loc == 'u')) <- still get warning: suggest parentheses around
assignment used as truth value
{
for (i=0, i<=max; i++)
foo2( .... );
}
}
Even after placing in the 2nd ( ) around my comparison, gcc -Wall is
still giving me the waring.
Can anyone shed some light on this please ?
TIA
Nat

I'd suggest checking

a) That you really do have "if (loc == 'u')" and absolutely definitely
do not have "if (loc = 'u')";

b) That "loc" is not a #define or the like. What happens if you change
the variable name to something else?

c) That the line you are carefully examining is indeed the same line
that the compiler is complaining about - sometimes line numbering goes
a bit odd. What happens if you comment it out?

Hope these help you track down the problem...
Paul.- Hide quoted text -

- Show quoted text -
Thanks everyone for assisting but I've worked it out.
It was the last comment that helped me out the most.
gcc -Wall was stating that my comparsion was somehow wrong so my focus
was on the if (loc == 'u') problem, as it corresponded to the line
number that gcc gave.

I had double checked that I used == and not = when in fact it was my
for loop that was giving me problems.
printf statements everywhere helped alot !

Lastly, I wasn't sure if I could paste my code, that's why I
paraphrased so I'll remember that for next time !
Cheers
Nat

Apr 18 '07 #5
On Apr 18, 11:45 am, nat...@yahoo.com.au wrote:
It was the last comment that helped me out the most.
gcc -Wall was stating that my comparsion was somehow wrong so my focus
was on the if (loc == 'u') problem, as it corresponded to the line
number that gcc gave.

I had double checked that I used == and not = when in fact it was my
for loop that was giving me problems.
I personally find this warning incredibly pointless and irritating. I
use assignments as truth values extremely frequently, and I don't need
the compiler to patronize me!

Apr 22 '07 #6
In article <11*********************@b58g2000hsg.googlegroups. com>,
<Fr************@googlemail.comwrote:
>I personally find this warning incredibly pointless and irritating. I
use assignments as truth values extremely frequently, and I don't need
the compiler to patronize me!
I use assignments as truth values, but I also sometimes make typing
errors, so I find the warning valuable.

-- Richard

--
"Consideration shall be given to the need for as many as 32 characters
in some alphabets" - X3.4, 1963.
Apr 22 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by Haoyu Zhang | last post: by
47 posts views Thread by Jeff Relf | last post: by
13 posts views Thread by agentxx04 | last post: by
9 posts views Thread by vijay | last post: by
13 posts views Thread by rick | last post: by
13 posts views Thread by Marvin | last post: by
18 posts views Thread by lovecreatesbea... | last post: by
1 post views Thread by Waqarahmed | last post: by
reply views Thread by Salome Sato | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.