找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16439|回复: 22
收起左侧

单片机C语言定义一个标志位,if(标志位)是什么意思?

  [复制链接]
ID:488382 发表于 2019-6-4 19:55 来自手机 | 显示全部楼层 |阅读模式
不懂啊
回复

使用道具 举报

ID:213173 发表于 2019-6-5 05:23 | 显示全部楼层
标志位是bit型数据,非1即0,可以直接判断真假。
回复

使用道具 举报

ID:415123 发表于 2019-6-5 06:16 | 显示全部楼层
这个标志位是在以后的程序里会根据预设的条件设置的,那么if(标志位)就根据标志为状态做运算啊
回复

使用道具 举报

ID:123289 发表于 2019-6-5 08:17 | 显示全部楼层
请教楼主中文:
“标志”是什么意思?
“标志”的那个“位”用来什么?
回复

使用道具 举报

ID:155507 发表于 2019-6-5 08:37 | 显示全部楼层
标志位是用来判断相应操作是否已经执行或者实践是否发生,如中断标志位,溢出位等

如果中断一次有很多任务需要执行完全,可以在中断子程序中设置一个标志位,在主程序中查这个标志位,当标志为1时,就在主程序中完成这些任务,这样就不会影响其它中断源的中断,也不会使中断产生混乱。

“=” 是赋值,“==”是比较。

你定义了一个位变量,你可以用它来标志任何状态。

这个状态不是自动改变的,而是要你自己改变它。

比如你定义了一个变量i, 你要用它来表示一个灯的开关状态, 1为开,0为关。

检测到灯开时,你的程序里要写 i =1,灯关时写i =0;

当需要根据灯的开或关执行不同的行为时:

if (i ==1){"i =1这里被执行"}else{"i =0这里被执行"};
回复

使用道具 举报

ID:529540 发表于 2019-6-5 08:56 | 显示全部楼层
标志位是位定义,只有2种状态。0和1.0为假,1为真。if(标志位)就是根据标志位的真假来判断是否执行后面的语句。这是我的理解,同样是小白.
回复

使用道具 举报

ID:94031 发表于 2019-6-5 08:59 | 显示全部楼层
根据标志位决定程序走向。
回复

使用道具 举报

ID:555324 发表于 2019-6-5 10:56 | 显示全部楼层
突然间忘了,但书上有,你可以查查
回复

使用道具 举报

ID:388197 发表于 2019-6-5 14:44 | 显示全部楼层
比方说接电话,定义2个标志位 名字随便起,为了方便就叫 电话铃,用途就是帮你判断程序的状态.
并且规定电话铃响了为1 不响 为0
那么可以这么表达


bit 电话铃 = 0;
while(1)
{
    if(!电话铃)    //等同于if(电话铃==0)就是电话铃没响.
    {
        玩游戏;
    }
    if(电话铃)     //等同于 if(电话铃==1),代表电话响了
    {
         接电话;
         电话铃 = 0;  //接了后,电话铃当然不响了所以就清0了.
         坑游戏里的队友;
         接电话直到对方唠叨完........;
    }
}
回复

使用道具 举报

ID:552592 发表于 2019-6-5 16:00 | 显示全部楼层
标志位的使用可以在很多地方控制程序的走向,而对标志位的判断只有真假。如果if里没有判断语句,那么就根据标志位数值判断真假:0就是假,非0就是真。如果有判断,就是语句的真假。
回复

使用道具 举报

ID:516612 发表于 2021-1-27 15:22 | 显示全部楼层
cjm82 发表于 2019-6-5 14:44
比方说接电话,定义2个标志位 名字随便起,为了方便就叫 电话铃,用途就是帮你判断程序的状态.
并且规定电话 ...

这个写反了吧
回复

使用道具 举报

ID:146782 发表于 2021-1-27 19:24 | 显示全部楼层
判断标志位是否为真,也就是标志位不为0,执行if后的语句
回复

使用道具 举报

ID:1087674 发表于 2023-8-22 16:11 | 显示全部楼层
cjm82 发表于 2019-6-5 14:44
比方说接电话,定义2个标志位 名字随便起,为了方便就叫 电话铃,用途就是帮你判断程序的状态.
并且规定电话 ...

是不是说反了呢,if(!电话铃) 不是等同于取反电话铃吗,就是电话铃==1吧。开头bit 电话铃=0什么意思?就是说开始就赋值为假?
回复

使用道具 举报

ID:883242 发表于 2023-8-22 21:30 | 显示全部楼层
农民阿伯 发表于 2023-8-22 16:11
是不是说反了呢,if(!电话铃) 不是等同于取反电话铃吗,就是电话铃==1吧。开头bit 电话铃=0什么意思?就 ...

他没说反,是你理解错了,if(!电话铃) 在电话铃==0的时候成立。
回复

使用道具 举报

ID:1034262 发表于 2023-8-22 22:34 | 显示全部楼层
判断条件是否为真。楼主找本C语言,或C51的数,仔细、连续的看一看,C语言基本是最简单的语言了。
回复

使用道具 举报

ID:997263 发表于 2023-8-23 08:55 | 显示全部楼层
就是值非0啊
回复

使用道具 举报

ID:1087674 发表于 2023-8-25 17:08 | 显示全部楼层
Hephaestus 发表于 2023-8-22 21:30
他没说反,是你理解错了,if(!电话铃) 在电话铃==0的时候成立。

bit 电话铃 = 0;
if(!电话铃)
!电话铃不就是=1了吗?怎么会是0呢?不是取反了吗
回复

使用道具 举报

ID:883242 发表于 2023-8-26 19:18 | 显示全部楼层
农民阿伯 发表于 2023-8-25 17:08
bit 电话铃 = 0;
if(!电话铃)
!电话铃不就是=1了吗?怎么会是0呢?不是取反了吗

取(电话铃)的值求反,判断,(电话铃)的值保持不变。
回复

使用道具 举报

ID:1040201 发表于 2023-8-28 16:38 | 显示全部楼层
u8 flag = 1;
if(flag)  //如果有值 就成立,如果是0就不成立
{
  //如果有值 才能进来  
}
回复

使用道具 举报

ID:1092173 发表于 2023-8-29 09:57 | 显示全部楼层
if标志位根据你后面预设的条件去判断
回复

使用道具 举报

ID:1092192 发表于 2023-8-29 14:22 | 显示全部楼层
    在单片机C语言中,定义一个标志位通常意味着创建一个变量,其值将被用来表示某种状态或条件。这个标志位可以被看作是一个开关,当它的值为真(非零)时,表示某种状态或条件为真;当它的值为假(零)时,表示某种状态或条件为假。

`if(标志位)`是一个条件判断语句,用于检查某个条件是否为真。如果`标志位`的值为真,那么`if`语句内的代码将被执行;如果`标志位`的值为假,那么`if`语句内的代码将被跳过,继续执行`if`语句之后的代码。

以下是一个简单的例子:


```c
int flag = 0;  // 定义一个标志位,初始值为0

// ... 这里是代码,可能会改变flag的值 ...

if (flag) {    // 如果标志位的值为真
    // 这里是当标志位为真时要执行的代码
    // ...
} else {       // 如果标志位的值为假
    // 这里是当标志位为假时要执行的代码
    // ...
}
```
在这个例子中,如果`flag`的值为真,那么`if`语句内的代码将被执行;如果`flag`的值为假,那么`if`语句内的代码将被跳过,执行`else`语句内的代码。
回复

使用道具 举报

ID:582723 发表于 2023-8-29 23:48 | 显示全部楼层
根据标志位的真假来选择执行的程序,标志位为真执行if里面的程序
回复

使用道具 举报

ID:367624 发表于 2023-8-30 08:14 | 显示全部楼层
就是判断标志里面是真是假,是真就执行if里面的程序,反之跳过该程序
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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