ban*_*ana 3 c casting bit-manipulation
以下代码:
signed char sc = ~0xFC;
unsigned char uc = ~0xFC;
Run Code Online (Sandbox Code Playgroud)
编译时给我以下警告:
integer conversion resulted in truncation
integer conversion resulted in truncation
Run Code Online (Sandbox Code Playgroud)
感谢名单,
我正在使用IAR Compiler for 8051,
在使用其他编译器进行编译时,您会收到类似的警告吗?
因为十六进制文字在写入时被视为int,所以0xFC为了避免警告,只需将它们强制转换为仅将1到12字节的数字:
~((char) 0xFC)
Run Code Online (Sandbox Code Playgroud)
0xFC0x000000FC在32位体系结构中被考虑,因此当您应用not not getting时0xFFFFFF03,这意味着当您将此结果分配给char时,3个最相关的字节将被丢弃,编译器会向您发出警告.
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |