写程序无聊了,就会想点DT的问题
今天突然在想for(;;)与while(1)循环的效率问题。
直接写个程序来跑估计是比不出高下的。
直接上链接编译后的汇编看吧。
关于GCC汇编连接的方法,详见:http://blog.csdn.net/jmy5945hh/article/details/7435234
源文件a.c
void main()
{
while(1);
}
源文件b.c
void main()
{
for(;;);
}
编译结果显示,两者是一摸一样的
也就是no difference!no any difference!
.file "a.c" //当然,如果非要挑刺,这句当然是不一样的,哈哈!
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
.L2:
jmp .L2
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1"
.section .note.GNU-stack,"",@progbits
(完)