我们什么时候在#define 中进行类型转换
When do we do typecast in #define
我们什么时候在这样的定义中使用类型转换:
#define MAGIC_NUMBER (unsigned char)0x5D
为什么有必要?
回答
why is it necessary
没有显式转换,0x5D
被视为十六进制形式的整数文字或整数常量。通过转换,我们尝试 明确地 将其表示为 unsigned char
.
When do we use
范围太广,可能超出了回答范围。例如,一种 可能 的情况是,在 printf()
系列的情况下,将 MACRO 作为参数提供给 %hhx
格式说明符。
我们什么时候在这样的定义中使用类型转换:
#define MAGIC_NUMBER (unsigned char)0x5D
为什么有必要?
回答
why is it necessary
没有显式转换,0x5D
被视为十六进制形式的整数文字或整数常量。通过转换,我们尝试 明确地 将其表示为 unsigned char
.
When do we use
范围太广,可能超出了回答范围。例如,一种 可能 的情况是,在 printf()
系列的情况下,将 MACRO 作为参数提供给 %hhx
格式说明符。