有几个嵌入式C语言问题,请高手给我指点一下!

[复制链接]
2080|4
 楼主| wuyunzdh 发表于 2007-5-14 17:38 | 显示全部楼层 |阅读模式
(1)C语言定义一个普通变量时,在没有赋初值时候,在编译时候分配内存吗?<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;那指针变量呢?&nbsp;<br /><br />&nbsp;内部变量赋值之后是不是也不分配内存?&nbsp;<br /><br /><br />(2)在函数外定义的变量,默认为Extern变量,但是书上说用Extern声明的变量,在定义时候是不允许赋值的,但是我不明白为什么不允许,那为什么在函数外定义变量时候能赋初值?<br /><br />&nbsp;&nbsp;谢谢<br /><br />
pigjiang 发表于 2007-5-14 18:55 | 显示全部楼层

试答

1、变量都是占内存的。不赋初值的变量占空间但不初始化,指针也是;<br />2、extern表示引用别人定义的变量,可能会有很多函数引用一个外部变量。如果大家都赋初值,就乱了。
 楼主| wuyunzdh 发表于 2007-5-14 19:57 | 显示全部楼层

回复

&nbsp;&nbsp;我感觉你回答的太片面了!如:<br /><br />&nbsp;&nbsp;在函数内部定义的那内部函数,只有运行到此函数才分配存储空间,编译的时候肯定部分配,
mohanwei 发表于 2007-5-14 20:48 | 显示全部楼层

好好看keil的C51编译器手册吧。

如果加上优化,更加复杂……
 楼主| wuyunzdh 发表于 2007-5-15 13:25 | 显示全部楼层

谢谢

哪里有得下呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部