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 18:54

>>7
If the expression has side-effects then obviously it has to be evaluated every time it occurs, but then that's not what you fucking put in your fucking example now is it?

A compiler that does whole-program optimization could still deduce that the value of the function only depends on the parameters and that it has no side-effects in which case it would only have to be called once AFAIK. I have no idea how common this type of optimization is.

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