c - 8 位值有文字后缀吗?

标签 c literals xc8

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

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

123U :unsigned int 也是 16 位宽

有一个干净的解决方案来描述 8 位文字吗?

最佳答案

Any idea for a clean solution to describe a 8 bit literal?

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

要形成 C 8 位文字:创建一个复合文字

#define OneTwoThree ((uint8_t) { 123 })
printf("%zu %x\n", sizeof(OneTwoThree), OneTwoThree);

// expected output
1 123

如果 xc8 支持复合文字,我不知道。

关于c - 8 位值有文字后缀吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50618966/

相关文章:

c - GCC 的 UTF-8 输出在 Eclipse 的构建控制台中显示不正确

scala - Scala REPL 中的浮点文字错误

c - XC8 中的不匹配比较

无法更改我的指针引用

c - 本地时间,mktime : second normalization and DST behaviour

java - 为什么在java中的Float数据类型中存储一个本质上是整数的文字值,最后没有 'f'不会给出错误?

c - 如何计算#define 中的逗号

c - 在 XC8 V1.44 中对文字进行按位 OR 运算时出现间歇性转换警告

c++ - 为什么 for/while/do-while 在执行相同任务时被放置在 c/c++ 中

python - 对于仅包含整数的文件,基数为 10 的 int() 的文字无效