>вообщем, int a[10] = {0}; полная чушь. советую поставить на место memset() >там где его поставили "писатели" любители memset() ну или на худой >конец написать не {0} а {0,0,0,0,0,0,0,0,0,0} int A(){ int a[10] = {0}; } int B() { int b[10]; memset(b, 0, 10); } #gcc -S test.c # cat test.s
A: .LFB0: ... movq $0, -48(%rbp) movq $0, -40(%rbp) movq $0, -32(%rbp) movq $0, -24(%rbp) movq $0, -16(%rbp) leave ret ... B: .LFB1: ... subq $48, %rsp leaq -48(%rbp), %rax movl $10, %edx movl $0, %esi movq %rax, %rdi call memset leave ret .. Ну и накуя мне лишние SUB и LEA, и особенно CALL ??? - Вот так ВИДУЗЯТНИКИ и пишут!!!
|