我有一个 int32_t 号,我需要检查它是否适合 int8 和 in16,但是当我尝试时:
if (number ==(int32_t)((int8_t) number)) {
printf("%s %d\n","8", number);
} else if (number ==(int32_t)((int16_t) number)){
printf("%s %d\n","16", number);
Run Code Online (Sandbox Code Playgroud)
编译器说第一个 if 语句总是正确的,但我不知道如何以其他方式做到这一点,只使用“==”和诸如 << >> 之类的位操作。和 <stdint.h>。