标题: 如果不赋值的话,bit定义的变量的值是随机变的吗? [打印本页]

作者: lx843040583    时间: 2017-5-27 22:50
标题: 如果不赋值的话,bit定义的变量的值是随机变的吗?
比如下面这个

bit flag_300ms ;
        while(1)
        {               
                key();                         //独立按键程序
                if(key_can < 10)
                {
                        key_with();            //设置温度上下限        

                }
                if(flag_300ms == 1)            //300ms,处理一次温度程序
                {           
                        flag_300ms = 0;        
                        temperature = read_temp();        //先读出温度的值

                        if(menu_1 == 0)                                          //没有按下设置键的时候的情况
                        {        
                                smg_i = 3;
                                dis_smg[0] = smg_du[temperature % 10];             //取温度的小数显示
                                dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示
                                dis_smg[2] = smg_du[temperature / 100 % 10] ;      //取温度的十位显示
                        }
                }
                fengshan_kz();        //风扇控制函数
        }
}

中间的if语句中flag_300ms=1是如何实现300ms执行一次处理的? 难道是flag_300ms一开始没有赋值,就是0和1随机的吗?所以是0还是1,谁也不确定是吗?


作者: lyf898    时间: 2017-5-28 09:34
所有变量赋值前都默认为零。
作者: yzwzfyz    时间: 2017-5-28 10:04
养成习惯,未确定的东西,不要侥幸,即使验证了多次。
其实如果真的未定义,它是不确定的值。
不过你所用的编译系统会不会帮你补充定义就不得而知了,楼上沙发说是0。

作者: renhao    时间: 2017-5-28 11:13
没有赋值的数据,通常是会是随机数。但不同的编译器处理有差别,你可以加打印函数测试就知道了啊。带操作系统的,一般在编译器系统会自动赋零。
作者: lyf898    时间: 2017-5-28 22:41
yzwzfyz 发表于 2017-5-28 10:04
养成习惯,未确定的东西,不要侥幸,即使验证了多次。
其实如果真的未定义,它是不确定的值。
不过你所用 ...

用过多种语言编程,未赋值前的变量值都==0




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1