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

標題: 老白請教,我看有些單片機例程上,開始定義了晶振主頻,波特率 [打印本頁]

作者: 大IGBT    時間: 2023-2-22 09:47
標題: 老白請教,我看有些單片機例程上,開始定義了晶振主頻,波特率
老白請教,我看有些例程上,開始定義了晶振主頻,波特率等例如#define  FOSC    22118400L
#define  BAUD    9600
后面程序里面直接算定時器初值什么的,為什么波特率那個是數字。而主頻那個帶個字母L.什么意思???

作者: xuyaqi    時間: 2023-2-22 10:32
數值后面加“L”和“l”(小寫的l)的意義是該數值是long型。
作者: wufa1986    時間: 2023-2-22 11:14
好像現在新的編譯器不帶L也沒問題
作者: 大IGBT    時間: 2023-2-22 11:31
那9600后面是不是也應該加個I之類什么的的
作者: 大IGBT    時間: 2023-2-22 11:32
哦,那9600后面是不是也應該加個什么I之類的
作者: xuyaqi    時間: 2023-2-22 15:57
大IGBT 發表于 2023-2-22 11:32
哦,那9600后面是不是也應該加個什么I之類的

數值后如果不加,編譯器默認int型,如果需要強調它是什么類型,就要加。
作者: man1234567    時間: 2023-2-22 16:12
長整型。一
般系統缺省0~65535(0x00~0xFF)可以直接寫。
作者: 歸依龍井    時間: 2023-2-22 16:33
在常數后面加L,表示此常量為long類型的,占4字節空間。
作者: a399288395    時間: 2023-2-25 00:36
加L就如1樓所說的那樣,意義是該數值是long型 , 再就是前面#define定義方面以后改程序 ,這就是標準的規范寫法
比如:
#define  BAUD    9600
那后面的代碼中只要是BAUD 就是表示是9600;
如果以后改代碼只要在前面的宏定義位置把9600改成38400就可以了,后面所有的BAUD都自動改成了38400;而不用再去翻找整個幾千行及萬行代碼一個一個的改;

作者: Hephaestus    時間: 2023-2-25 01:35
大IGBT 發表于 2023-2-22 11:32
哦,那9600后面是不是也應該加個什么I之類的

常數默認是int型,看22118400顯然是C51,int類型范圍是-32768~32767,顯然超范圍,不加L顯然是錯的。如果是MDK當然就不用加了。
作者: coody_sz    時間: 2023-2-25 10:46
帶L表示長整型,帶UL表示無符號長整型,帶f表示浮點。
通常是在C51中使用,因為C51默認是整型int16位的,不指定類型的立即數,編譯器默認16位,炒股的被截斷。比如定義 #define  ABC  65537,超過16位被截斷為 1,即等效 #define  ABC  1
作者: frank_tw    時間: 2023-2-25 12:32
L=long (4 Bytes)




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