社区
C语言
帖子详情
程序是怎么运行的
lvpinging
2005-11-29 09:40:51
RT....
主要是想知道在内存中的变化...谢谢拉
像这么一个程序
main()
{
int i=0;
int a=i++;
printf("%d",a);
}
在VC6.0下怎么运行的
内存分配空间之类的都讲讲
i++什么时候完成+1操作啊...谢谢啊
...全文
169
7
打赏
收藏
程序是怎么运行的
RT.... 主要是想知道在内存中的变化...谢谢拉 像这么一个程序 main() { int i=0; int a=i++; printf("%d",a); } 在VC6.0下怎么运行的 内存分配空间之类的都讲讲 i++什么时候完成+1操作啊...谢谢啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fiftymetre
2005-11-30
打赏
举报
回复
NND就知道不是啊不是啊,我捶死你
xugang_2001
2005-11-29
打赏
举报
回复
呵呵,要编译原理的知识,很烦的
ma100
2005-11-29
打赏
举报
回复
不是啊..我是想知道...比方说i++;程序怎么判断什么时候进行+1操作啊
像一个函数a(i,i++){......}
是整个函数运行完了才进行+1操作呢..还是?
//////////////////////////
学习完编译原理就知道了
fiftymetre
2005-11-29
打赏
举报
回复
存在i++的表达式,在表达式结束以后求值
a(i, i++);
==>
a(i, i);
i++;
lvpinging
2005-11-29
打赏
举报
回复
不是啊..我是想知道...比方说i++;程序怎么判断什么时候进行+1操作啊
像一个函数a(i,i++){......}
是整个函数运行完了才进行+1操作呢..还是?
fiftymetre
2005-11-29
打赏
举报
回复
汇编如下:
42: int main()
43: {
0040B800 push ebp
0040B801 mov ebp,esp
0040B803 sub esp,48h
0040B806 push ebx
0040B807 push esi
0040B808 push edi
0040B809 lea edi,[ebp-48h]
0040B80C mov ecx,12h
0040B811 mov eax,0CCCCCCCCh
0040B816 rep stos dword ptr [edi]
44: int i=0;
0040B818 mov dword ptr [ebp-4],0
45: int a=i++;
0040B81F mov eax,dword ptr [ebp-4]
0040B822 mov dword ptr [ebp-8],eax
0040B825 mov ecx,dword ptr [ebp-4]
0040B828 add ecx,1
0040B82B mov dword ptr [ebp-4],ecx
46: printf("%d",a);
0040B82E mov edx,dword ptr [ebp-8]
0040B831 push edx
0040B832 push offset string "%d" (00489040)
0040B837 call printf (00417e00)
0040B83C add esp,8
47:
48: return 0;
0040B83F xor eax,eax
49:
50: }
进入函数后首先为函数分配了48h的栈空间用来存放临时变量
0040B801 mov ebp,esp
0040B803 sub esp,48h
这部分栈内存被初始化为0xcccccccc
0040B809 lea edi,[ebp-48h]
0040B80C mov ecx,12h
0040B811 mov eax,0CCCCCCCCh
0040B816 rep stos dword ptr [edi]
int a=i++;
通过代码可以看到,先把i赋给a
0040B81F mov eax,dword ptr [ebp-4]
0040B822 mov dword ptr [ebp-8],eax
然后再执行i++
0040B825 mov ecx,dword ptr [ebp-4]
0040B828 add ecx,1
0040B82B mov dword ptr [ebp-4],ecx
ma100
2005-11-29
打赏
举报
回复
学习汇编语言后就知道了
Android应用
程序
资源管理框架 PPT
代码和资源分开可以使得应用
程序
在
运行
时根据实际需要来组织UI。这样就可使得应用
程序
只需要编译一次,就可以支持不同的UI布局。这种特性使得应用
程序
在
运行
时可以适应不同的屏幕大小和密度,以及不同的国家和语言等...
DirectX修复工具 V3.3增强 绿色版
本
程序
为绿色版,无需安装,可直接
运行
。 本
程序
的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。
程序
主要针对0xc000007b问题设计,可以完美修复该问题。本
程序
中包含了最新版的DirectX redist...
Qt自定义专属QQ聊天
程序
例程
Qt自定义专属QQ聊天
程序
例程 内含debug,release两个版本,本地无Qt库也可以
运行
体验。
Android系统架构概述PPT
Android
运行
时从下到上又包括了HAL层、应用
程序
框架层和应用
程序
层。HAL层主要是为规避GPL而设计的,它将将硬件驱动分成内核空间和用户空间两部分,其中用户空间两部分采用的是商业友好的Apache License。应用
程序
...
程序
是
运行
在flash中还是RAM中?
本篇文章主要针对第一个问题,请教外援,他解释:正常情况下代码是在OTA1中
运行
的,当OTA时
程序
下载固件到OTA2成功后从flash中OTA2对应地址启动。当时觉得不对劲,
程序
怎么会在flash中
运行
?查了下,对于x86的pc机和...
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章