STM32中0x1u 0u的含义
2022-08-19 来源:csdn
今天见到这种函数,查了一些他们的含义
后缀就是告诉编译器该常数的属性。
默认为有符号INT型,加了u就是无符号的,加了l就是long型。
做下移位就知道结果了。以0x80为例,左移次数过多编译器会提示你符号位被改变,即负数被移位成正数。加个u的话就被编译器识别为无符号数,可以随意移位。不会影响符号位。
例如:
C语言里面0x8000000000000000u这样的常数一律默认为int型,不是什么字节。至于int型是4字节还是2字节那就是编译器的问题了。加u尾缀并不会扩展常数占用的字节数,加ul才会从int型长度扩展成long型长度。
个人理解:
也就是说0x00是int型,0x00u是无符号int型,0x00ul长整型
相关文章