Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

C

Name: Anonymous 2009-10-20 17:13

Hey!

Is there a shortcut for this "pattern":
c = (a -b);
if (c != 0) return c;
c = (d-c);
if (c != 0); return c;
//...



I don't quite see how I can avoid storing c, because it matters if it's <0 or >0... or does it get optimized away anyway?

--

qsort, bsearch, and so on take a function whose arguments need to be "const void *p". Is there a way to cast them into the right type right in the function definition, without needing to either introduce two new variables, or cast them every time they're used?

Thanks /prog/!

Name: Anonymous 2009-10-20 17:25

If you write something like
if (a - b) return a - b; the compiler will evaluate the common subexpression a - b only once. But you're worrying about the performance of inconsequential things.

Also note that in your example the second if will be executed only if a - b == 0, which means the second if essentially becomes if (d).

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List