欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: keil函數返回bool類型 [打印本頁]

作者: leave323    時間: 2023-5-29 11:03
標題: keil函數返回bool類型
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'

作者: 飛云居士    時間: 2023-5-29 13:08
該“bool OneWire_Init()//初始化單總線 返回從機的應答信號(0或1)”行的上一行缺少“;”(分號)
作者: npn    時間: 2023-5-29 13:12
沒有bool類型,只有bit類型。
作者: Hephaestus    時間: 2023-5-29 13:28
1)bool是c99標準里面的類型,之前的沒有。

2)Keil C51不支持c99標準,永遠別想了。

3)RVMDK支持c99,project options里面打開即可。
作者: leave323    時間: 2023-5-29 13:59
飛云居士 發表于 2023-5-29 13:08
該“bool OneWire_Init()//初始化單總線 返回從機的應答信號(0或1)”行的上一行缺少“;”(分號)

雖然報錯是這樣,但是上一行是有分號的而且是英文分號,我感覺是無法使用bool類型
作者: lkc8210    時間: 2023-5-29 15:20
#define bool bit
作者: yzwzfyz    時間: 2023-5-29 17:28
本帖最后由 yzwzfyz 于 2023-5-30 07:54 編輯

51里允許有256個布爾變量,但不用BOOL這個單詞。
參見:關于keil5編譯idata數據出錯問題
http://m.raoushi.com/bbs/dpj-229297-1.html
第9樓,第7條。
作者: 597329015    時間: 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類型的數據了

作者: Hephaestus    時間: 2023-5-29 19:51
597329015 發表于 2023-5-29 19:40
在Keil中,bool類型需要用stdbool.h頭文件定義,確保bool類型能夠正常使用。在代碼中使用bool類型時,需要 ...

分不清RVMDK和C51就別說了,你的說法對于前者是對的,對于后者是完全錯誤的,樓主第一句話就說明了是后者。
作者: 1812441556    時間: 2023-5-31 10:26
定義無符號整型




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1