houcs 发表于 2022-1-3 22:20

宏定义没有u

#define IE2_                (0x0001u)/* Interrupt Enable 2 */
DEFC(   IE2               , IE2_)
#define U1IE                IE2       /* UART1 Interrupt Enable Register */
#define URXIE1            (0x10)
#define UTXIE1            (0x20)
如上 有些宏定义里十六进制数没有u,而有些16位的就有?这是什么意思?

huangchui 发表于 2022-1-3 22:22


u就是unsigned,表示是无符号.

yszong 发表于 2022-1-3 22:25

对,也就是表示无符号的16进制数。

llljh 发表于 2022-1-3 22:26


应该是表示无符号数。
为了告知编译器,以避免编译器弄错。

xxrs 发表于 2022-1-3 22:28

类似的用法:::
float      RadStep = 0.1963495408494f;
long double a = 12.34L; /* correctly initializes to double precision */
long double b = 56.78; /* converts single precision value to double precision */

wuhany 发表于 2022-1-3 22:31

很多后面+f 表示浮点型的。

zwll 发表于 2022-1-3 22:33

现在的keil不加转换不加上f 可能给警告的。

jiaxw 发表于 2022-1-3 22:35

是的 u就是unsigned,表示是无符号。

xxrs 发表于 2022-1-3 22:37

无符号常量,可以在常量后边加上字母U。。。

heweibig 发表于 2022-1-3 22:39

u是unsigned的意思,表示无符号数。。

jlyuan 发表于 2022-1-3 22:41

数字后面带个U是表示无符号类型的数据。

renyaq 发表于 2022-1-3 22:46

C语言中整形常量默认为有符号int。。

llljh 发表于 2022-1-3 22:48

U表示该常数用无符号整型方式存储,相当于unsigned int

dingy 发表于 2022-1-3 22:50

这里表示无符号的16进制数。

wuhany 发表于 2022-1-3 22:52

试试在常量后边加上字母U

tian111 发表于 2022-1-3 22:54

+f 表示浮点型

huangchui 发表于 2022-1-3 22:56

也可以自己定义啊

wyjie 发表于 2022-1-3 22:58

不用定义 就是多打俩字母呗

pengf 发表于 2022-1-3 23:00

没有什么意思

houcs 发表于 2022-1-3 23:02

哦,那我就知道怎么回事了,多谢大家
页: [1]
查看完整版本: 宏定义没有u