c - 我们什么时候在#define 中进行类型转换

标签 c casting macros

我们什么时候在这样的定义中使用类型转换:

#define MAGIC_NUMBER  (unsigned char)0x5D

为什么有必要?

最佳答案

回答

why is it necessary

在没有显式转换的情况下,0x5D 被视为十六进制形式的整数文字或整数常量。通过强制转换,我们尝试显式将其表示为 unsigned char

When do we use

过于宽泛,可能超出了答案的范围。例如,一种可能的情况是,在 printf() 系列的情况下,将 MACRO 作为参数提供给 %hhx 格式说明符.

关于c - 我们什么时候在#define 中进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32050301/

相关文章:

C++ 强制转换语法样式

c# - 替换字符串中的占位符

c - 文件之间的变量

c - Release模式下 memcpy 出现问题

Android - 按下按钮单击问题后将 EditText 转换为 int

c++ - Pthreads 将 void * 参数转换为 int 数组

macros - Racket 宏可以扩展为空吗?

macros - 为什么 Julia 中的字符串宏使用...?

c - 执行期间链表不复合

c - 错误: expected specifier-qualifier-list before "File"