WelcomeUser Guide
ToSPrivacyCanary
DonateBugsLicense

©2025 Poal.co

(post is archived)

[–] 1 pt (edited )

The expressions will be zero (false) or non-zero (true).

Yeah ok, so, "if(myVar = true)" essentially means "if(true)", in C/C++... Or any other language allowing such stunts. Makes sense. And at the same time it makes no sense whatsoever; the conditional check becomes an affectation, so it's not a conditional check it's just lame

...

[–] 0 pt

Back in the day they wrote the first C compiler, they were interacting with serial-enabled typewriters. If they could write if(a=f(x))g(); they would do that over a = perform_function_f(x); if (a != 0 ) { perform_fuction_g(); } else { /* do nothing */ }

[–] 0 pt

>if(a=f(x))g();

I don't see why you would need to store the value of f(x) in "a" on this one, and I don't think that "back in the day" they just couldn't write if( f(x) ) g();

[–] 0 pt

In the example, it is assumed that you have to store a to reuse the value elsewhere. Something you still see today while it doesn't fit the assignment=condition is while ((c=fgetc(file))!=EOF) in hand-written parsers and the like. You are going to need the value in c in the loop and calling the function again won't work.