找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4523|回复: 5
收起左侧

如果不赋值的话,bit定义的变量的值是随机变的吗?

[复制链接]
ID:197037 发表于 2017-5-27 22:50 | 显示全部楼层 |阅读模式
比如下面这个

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,谁也不确定是吗?

回复

使用道具 举报

ID:47933 发表于 2017-5-28 09:34 | 显示全部楼层
所有变量赋值前都默认为零。
回复

使用道具 举报

ID:123289 发表于 2017-5-28 10:04 | 显示全部楼层
养成习惯,未确定的东西,不要侥幸,即使验证了多次。
其实如果真的未定义,它是不确定的值。
不过你所用的编译系统会不会帮你补充定义就不得而知了,楼上沙发说是0。
回复

使用道具 举报

ID:205580 发表于 2017-5-28 11:13 | 显示全部楼层
没有赋值的数据,通常是会是随机数。但不同的编译器处理有差别,你可以加打印函数测试就知道了啊。带操作系统的,一般在编译器系统会自动赋零。
回复

使用道具 举报

ID:47933 发表于 2017-5-28 22:41 | 显示全部楼层
yzwzfyz 发表于 2017-5-28 10:04
养成习惯,未确定的东西,不要侥幸,即使验证了多次。
其实如果真的未定义,它是不确定的值。
不过你所用 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表