C语言 8 位值是否有文字后缀?



我正在使用xc8编译器,想告诉他我的文字只有8位宽。

123:无后缀,默认 int(xc8 为 16 位(

123U:无符号 int 也是 16 位宽

有什么想法来描述 8 位文字的干净解决方案吗?

有什么想法来描述 8 位文字的干净解决方案吗?

C 只有 2 个文字:字符串文字和复合文字(C99(。C 将123123u标识为整数常量,而不是文字

要形成 C 8 位文字:制作复合文字

#define OneTwoThree ((uint8_t) { 123 })
printf("%zu %xn", sizeof(OneTwoThree), OneTwoThree);
// expected output
1 123

IDK 如果 xc8 支持复合文字

C 中没有 8 位文字。您可以获得的最接近的东西是从 stdint.hUINT8_C(123),它为您提供了最适合uint_least8_t类型变量的文字。它很可能会扩展到123U.

至于如何实际解决这个问题,你将常量展示成一个定义,无论如何你都应该这样做:

#define NUMBER_8BIT ( (uint8_t)123 )

类型转换为(无符号字符(

相关内容

  • 没有找到相关文章

最新更新