movl $0, %ebx
incl %ebx
incl %ebx
incl %ebx
movl %ebx, 8(%esp)
movl %ebx, 4(%esp)
movl %ebx, (%esp)
call _func
汇编显示,先将n自增了3次变为3,然后调用函数,因此都是3
第二个问题的汇编:
movl $3, 16(%esp)
movl $98, 12(%esp)
movl $2, 8(%esp)
movl $97, 4(%esp)
movl $1, (%esp)
call _func2
可以看出参数对应的栈地址应该是连续的
另外,这个程序在VC6下的结果完全不一样:
func for n++
000
12ff2c12ff3012ff34
func for ++n
321
12ff2c12ff3012ff34
func2
12ff2412ff2812ff2c12ff3012ff34
但是最后的地址也是连续的 。
此类问题知道上问过多次了,可以说没有什么意义,结果与编译器实现相关 , 实际编程没有用处,除非写代码的人喜欢玩花俏
【c语言用函数做参数 c语言有参数函数调用例子】关于c语言用函数做参数和c语言有参数函数调用例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 河南快手哪个直播最好挣钱,河南快手红人都有谁
- 公众号发表哪些文章,公众号发表哪些文章好
- 魅族怎么用鸿蒙系统,魅族手机怎么装鸿蒙系统
- 王者云果果在哪里直播卖货,王者果果
- python起进程函数 python 进程pid
- java自动清屏代码,java 清空屏幕
- word如何导出语音,导出word朗读音频
- 单机游戏恋爱养成推荐,单机恋爱养成类手游
- mysql怎么输出数据库 mysql输出数据库中所有表