当CHAR_BIT>时,语言标准如何定义uint8_t? 8?

时间:2016-07-29 08:39:57

标签: c

我手头没有CHAR_BIT > 8的平台。

所以我更改了文件limits.h中的相关预处理器定义:

#define CHAR_BIT      16          /* number of bits in a char */
#define SCHAR_MIN   (-32768)      /* minimum signed char value */
#define SCHAR_MAX     32767       /* maximum signed char value */
#define UCHAR_MAX     0xffff      /* maximum unsigned char value */

然后,当包含文件stdint.h时,我希望看到uint8_t不再是可行类型。

但它确实如此。

语言标准如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

文件limits.h不是编译器的配置文件;它是一种机制,通过该机制,实施为您提供信息。您的编译器知道 char有8位且uint8_tunsigned char;它不需要读取limits.h文件来找到它。

如果你想要一个汽车类比,通过你的燃油表锤击钉子不会阻止你运行油箱干燥。