请问关于c的printf函数有关问题
请教关于c的printf函数问题
#include <stdio.h>
main()
{
printf("hello, world\n");
}
----------------------------------------------------分隔线
.const
szHello db 'Hello, world!', 0
.code
main proc
invoke printf, offset szHello
ret
main endp
end main
我是初学者,用msvcrt.lib的printf和这C的PRINTF函数做对比的,程序如上,我想问,为什么汇编的Messagebox源码和C的基本一样,但printf函数的源码就完全不一样呢,难道说C的printf函数不是这个??,很想知道答案,为什么源码不同?
------解决方案--------------------
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!
#include <stdio.h>
main()
{
printf("hello, world\n");
}
----------------------------------------------------分隔线
.const
szHello db 'Hello, world!', 0
.code
main proc
invoke printf, offset szHello
ret
main endp
end main
我是初学者,用msvcrt.lib的printf和这C的PRINTF函数做对比的,程序如上,我想问,为什么汇编的Messagebox源码和C的基本一样,但printf函数的源码就完全不一样呢,难道说C的printf函数不是这个??,很想知道答案,为什么源码不同?
------解决方案--------------------
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!