Chinaunix

标题: 华为一道笔试题 大家看下 [打印本页]

作者: duanius    时间: 2008-10-10 11:57
标题: 华为一道笔试题 大家看下
全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的 ?

据说这是道华为的笔试题   但无所谓了  关键是怎么答最完美
我知道局部量实在栈上   全局量在数据段   
但操作系统和编译器怎么知道的  这该怎么答比较好?

ps   我不是问 局部变量 和全局量的区别
问的是后面那个问题  就是在os和编译器级别上的

[ 本帖最后由 duanius 于 2008-10-10 13:30 编辑 ]
作者: liubingqian    时间: 2008-10-10 12:20
函数内的是auto类型变量是局部变量,函数外的是全局变量。
作者: duanius    时间: 2008-10-10 13:30
原帖由 liubingqian 于 2008-10-10 12:20 发表
函数内的是auto类型变量是局部变量,函数外的是全局变量。

谢谢  但我不是问 局部变量 和全局量的区别
问的是后面那个问题  就是在os和编译器级别上的
作者: 5毛党党员    时间: 2008-10-10 13:33
编译器根据你定义的位置就可以知道啊。。。

然后编译器告诉操作系统
作者: duanius    时间: 2008-10-10 13:38
汗  这样回答恐怕不行吧  不过我也不知道华为希望我答什么。。
作者: 5毛党党员    时间: 2008-10-10 13:42
局部量实在栈上   全局量在数据段   

这个不就是操作系统级别的吗?
作者: 雨过白鹭洲    时间: 2008-10-10 13:46
编译器在编译的过程中,根据变量声明的位置以及相应的规则,决定变量是全局还是本地的

至于链接时编译器干了些什么,怎么区别处理全局和本地变量,可能得看看Linker and loader这本书了
作者: 雨过白鹭洲    时间: 2008-10-10 13:48
晕,网速慢,竟然发了两条。。

[ 本帖最后由 雨过白鹭洲 于 2008-10-10 13:52 编辑 ]
作者: duanius    时间: 2008-10-10 13:49
哦这样  难道是我想多了?    回答在栈上以及数据段上就ok了?   没答案  可能就是这样吧。。。

Linker and loader。。。  好深  好深。。。
作者: uiamu    时间: 2008-10-10 13:56
华为的招聘人员在计算机上的水平是非常普通的,所以不要以为问题会很难




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2