suppose want program takes number input device, , return -1 if number 0, continue executing program in other cases.
in c++, part of code be:
int main() { if(number == 0) return -1; /* here rest of program */ return 0; // end of program }
or
int main() { if(number == 0) return -1; else { /* here rest of program */ } return 0; // end of program }
my question is, 1 of these code parts more efficient?
and yes, i'm talking exact case, when need exit program if meets condition.
there no performance difference since generated code same:
$ echo "int main() { int number; if (number == 0) return -1; return 0; }" | g++ -x c++ -s - -o /dev/stdout | md5sum 9430c430d1f748cc920af36420d160ce - $ echo "int main() { int number; if (number == 0) return -1; else {} return 0; }" | g++ -x c++ -s - -o /dev/stdout | md5sum 9430c430d1f748cc920af36420d160ce - $ echo "int main() { int number; if (number == 0) return -1; else {} return 0; }" | g++ -x c++ -s - -o /dev/stdout .file "" .text .globl main .type main, @function main: .lfb0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 cmpl $0, -4(%rbp) jne .l2 movl $-1, %eax jmp .l3 .l2: movl $0, %eax .l3: popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .lfe0: .size main, .-main .ident "gcc: (ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4" .section .note.gnu-stack,"",@progbits
Comments
Post a Comment