摘要: 为了简化编译器的实现,C语言从语法上规定全局变量只能用常量表达式来初始化,因此下面这种全局变量初始化是不合法的:int minute = 360;int hour = minute / 60;虽然在编译时计算出hour的初始值是可能的,但是minute / 60不是常量表达式,不符合语法规定,所以编译器不必想办法去算这个初始值。 如果全局变量在定义时不初始化则初始值是0,如果局部变量在定义时不初始化则初始值是不确定的。所以,局部变量在使用之前一定要先赋值,如果基于一个不确定的值做后续计算肯定会引入Bug。 “初值不确定”,有没有说这个不确定值不能是0?有没有说这个不确定值不能是上次调用赋的值. 阅读全文
posted @ 2011-06-27 22:54 wanmero 阅读(261) 评论(0) 推荐(0) 编辑