注册 登录
编程论坛 汇编论坛

编译的问题

自由呼吸 发布于 2006-11-24 19:01, 609 次点击

......
char *endptr;
char *string="123.456e-1";
long double _strtold(const char *string,char **endptr);
_strtold(string,&endptr);
......

此程序片段,.编译器的大概处理过程怎么样的?编译器要巡检几次?每次都做什么?
谢谢,谁帮下忙,简单解释下就行。

5 回复
#2
菜鸟上路2006-11-25 16:02
还没学编译原理

我认为大概就是这样的:
先在存储区分配*endptr和*string对应大小的内存,至于在什么区域,要看是全局的还是局部的;
分配个函数头指针,用来指定函数的入口,然后再定义函数;
调用函数。
#3
angeloc2006-11-25 16:04

这个东西是不可以认为的

#4
hu9jj2006-11-25 19:28
编译过程一般需要扫描两次,第一次计算标号的地址,第二次编译成机器码。
#5
自由呼吸2006-11-26 18:41

非常感谢
不过能在清楚点吗。

#6
菜鸟上路2006-11-26 19:15
如果你装了VC的话,开以通过cl /c /Fa 1.c来查看编译后的1.asm文件。这样你可能会更清楚点
1