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语言有参数函数调用例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
- 如何使用cmd命令行提示符登录mysql服务器 cmd中登陆mysql
- mysql 65535 8192 限制 mysql限制资源使用
- Mysql使用索引查询 mysql使用round
- redis缓存 redis缓冲常用命令
- mongodb用来存储什么 mongodb适合存储对象吗
- 2021年高考最热作文 mysql创建实例用户
- 你为什么使用抖音 你为什么使用mysql
- redis通配符的使用
- 使用redis实现分布式锁及其优化 redis分布式性能
- redis不适用场景 redis处理场景识别
