找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1463|回复: 9
收起左侧

keil函数返回bool类型

[复制链接]
ID:1077017 发表于 2023-5-29 11:03 | 显示全部楼层 |阅读模式
51单片机编程,请问keil里函数怎样写才能返回bool类型的数据?
bool OneWire_Init()//初始化单总线 返回从机的应答信号(0或1)
{
        unsigned char i;
        bool Respond;
        OneWire_DQ=1;
        OneWire_DQ=0;
        i = 247;while (--i);//延时约500us
        OneWire_DQ=1;
        i = 32;while (--i);//延时约70us
        Response=OneWire_DQ;
        return Response;
}

报错信息
OneWire.h(3): error C129: missing ';' before 'OneWire_Init'
回复

使用道具 举报

ID:404160 发表于 2023-5-29 13:08 | 显示全部楼层
该“bool OneWire_Init()//初始化单总线 返回从机的应答信号(0或1)”行的上一行缺少“;”(分号)
回复

使用道具 举报

ID:57657 发表于 2023-5-29 13:12 | 显示全部楼层
没有bool类型,只有bit类型。
回复

使用道具 举报

ID:883242 发表于 2023-5-29 13:28 | 显示全部楼层
1)bool是c99标准里面的类型,之前的没有。

2)Keil C51不支持c99标准,永远别想了。

3)RVMDK支持c99,project options里面打开即可。
回复

使用道具 举报

ID:1077017 发表于 2023-5-29 13:59 | 显示全部楼层
飞云居士 发表于 2023-5-29 13:08
该“bool OneWire_Init()//初始化单总线 返回从机的应答信号(0或1)”行的上一行缺少“;”(分号)

虽然报错是这样,但是上一行是有分号的而且是英文分号,我感觉是无法使用bool类型
回复

使用道具 举报

ID:161164 发表于 2023-5-29 15:20 | 显示全部楼层
#define bool bit
回复

使用道具 举报

ID:123289 发表于 2023-5-29 17:28 | 显示全部楼层
本帖最后由 yzwzfyz 于 2023-5-30 07:54 编辑

51里允许有256个布尔变量,但不用BOOL这个单词。
参见:关于keil5编译idata数据出错问题
http://www.51hei.com/bbs/dpj-229297-1.html
第9楼,第7条。
回复

使用道具 举报

ID:1080331 发表于 2023-5-29 19:40 | 显示全部楼层
在Keil中,bool类型需要用stdbool.h头文件定义,确保bool类型能够正常使用。在代码中使用bool类型时,需要引入该头文件并且在函数前面加上bool关键字。您可以尝试将代码修改为以下格式:

#include <stdbool.h>

bool OneWire_Init()//初始化单总线 返回从机的应答信号(0或1)
{
unsigned char i;
bool Respond;
OneWire_DQ=1;
OneWire_DQ=0;
i = 247;while (--i);//延时约500us
OneWire_DQ=1;
i = 32;while (--i);//延时约70us
Response=OneWire_DQ;
return Response;
}

这样就可以返回bool类型的数据了
回复

使用道具 举报

ID:883242 发表于 2023-5-29 19:51 | 显示全部楼层
597329015 发表于 2023-5-29 19:40
在Keil中,bool类型需要用stdbool.h头文件定义,确保bool类型能够正常使用。在代码中使用bool类型时,需要 ...

分不清RVMDK和C51就别说了,你的说法对于前者是对的,对于后者是完全错误的,楼主第一句话就说明了是后者。
回复

使用道具 举报

ID:1046232 发表于 2023-5-31 10:26 | 显示全部楼层
定义无符号整型
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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