| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:参数传递问题+编译器大概工作过程
只看楼主 加入收藏
自由呼吸
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-11-11
收藏
 问题点数:0 回复次数:2 
参数传递问题+编译器大概工作过程
以下面的程序片段为例,我的问题在注释里,请走过路过的朋友帮帮忙解决下.
......
char *endptr;//声名并定义变量,分配随机内存?
char *string="123.456e-1";//声明并定义初始化变量,并分配内存?
long double _strtold(const char *string,char **endptr);//声明函数,编译器对它做什么处理?在一张表格中注册?
_strtold(string,&endptr);//过程如何?这样吗:函数过程加载到内存(是加载到上条指令的接下来的地址还是别的地址,然后跳转过去?),首先形参初始化,然后处理过程?这里又有个问题,如果形参的第一个参数无const修饰,那么编译器如何区分形参同名的实参呢?难道一个作用域一张什么什么表格?

编译器的大概处理过程怎么样的?以此程序片段,TC 2为例.编译器要巡检几次?每次都做什么?对此程序片段做何处理?

我相信很多象我一样的新手对此都很迷茫,希望哪位大侠能赐教一下.

搜索更多相关主题的帖子: 参数 编译 
2006-11-23 12:21
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
如果你只是学C语言,我想你可以暂时跳过这些,当你接触的程序越来越多时你自然会对编译器工作过程有一定的了解

char *endptr;//声明指针,未初始化,不分配内存
char *string="123.456e-1";//声明并初始化指针变量,分配内存
对于函数我只知道函数名是一个指针,地址即为函数的入口,当调用函数时会在堆中分配一块内存以记录函数运行状态及返回值

2006-11-23 12:39
自由呼吸
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-11-11
收藏
得分:0 

好象不是吧,C++好象函数也是放堆栈里的,除非你另行开辟空间才用到堆.
我只是想了解下,也没想深究
厉害的几句话就可以说出我想要的.
声明指针真的不分配内存吗
谁能帮我试下,我电脑坏了,网吧上网呢,无奈啊
非常感谢楼上的回答,我其实也是按照你说的思路学习的,不过一些东西我还是想了解下.

2006-11-23 17:50
快速回复:参数传递问题+编译器大概工作过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026808 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved