我们什么时候在这样的定义中使用类型转换:
#define MAGIC_NUMBER (unsigned char)0x5D
Run Code Online (Sandbox Code Playgroud)
为什么有必要?
回答
为什么有必要
没有显式强制转换,0x5D被认为是十六进制形式的整数文字或整数常量.通过演员表,我们尝试明确地将其表示为一个unsigned char.
我们什么时候使用
太宽泛,可能超出了答案的范围.例如,一种可能的情况是%hhx,在printf()族的情况下,将MACRO作为格式说明符的参数提供.