$ cat t.cpp int sign(int i) { if(i > 0) return 1; if(i == 0) return 0; if(i < 0) return -1; } $ g++ -c t.cpp -Wall t.cpp: In function ‘int sign(int)’: t.cpp:5: warning: control reaches end of non-void function $ int sign(int i) { if(i > 0) return 1; if(i == 0) return 0; return -1; // i<0 } int sign(int i) { return (i>0) ? 1 : ((i<0)?-1:0); } int sign(int i) { return (i > 0) - (i < 0); } int sign(int i) { if (i > 0) return 1; else if (i == 0) return 0; else return -1; // i<0 } Unoptimized Optimized (-O5) if 166 110 ?: 150 98 >-< 122 98