是否为 MSVC 编译器预定义了 __CHAR_BIT__ 宏?
Is __CHAR_BIT__ macro predefined for MSVC compiler?
是否为 MSVC 编译器预定义了 __CHAR_BIT__
宏?我如何知道可用于编译器的预定义宏列表?
编译器的文档将给出预定义宏的列表。在 MSVC 的情况下,这是 here。标准中指定的所有宏仍然可用,只要您包含适当的 header(在某些情况下,如果您包含其他 header)。
在 __CHAR_BIT__
的情况下,这不是标准的一部分; CHAR_BIT
宏是,并在 header <climits>
中声明。我相当怀疑 MSVC 是否有 CHAR_BIT
或 __CHAR_BIT__
作为预定义的宏:编译器主要使用预定义的宏来提供对编译标志的访问,而不是直接在 [=25] 中定义 architecture-dependent 宏=]s(当然,使用预定义的宏来确定那是什么架构)。
我想检查宏是否是 预定义的 而不是在 header 中定义的,您只需在包含任何 header 之前检查即可。不过,我想不出你想要这样做的原因。
是否为 MSVC 编译器预定义了 __CHAR_BIT__
宏?我如何知道可用于编译器的预定义宏列表?
编译器的文档将给出预定义宏的列表。在 MSVC 的情况下,这是 here。标准中指定的所有宏仍然可用,只要您包含适当的 header(在某些情况下,如果您包含其他 header)。
在 __CHAR_BIT__
的情况下,这不是标准的一部分; CHAR_BIT
宏是,并在 header <climits>
中声明。我相当怀疑 MSVC 是否有 CHAR_BIT
或 __CHAR_BIT__
作为预定义的宏:编译器主要使用预定义的宏来提供对编译标志的访问,而不是直接在 [=25] 中定义 architecture-dependent 宏=]s(当然,使用预定义的宏来确定那是什么架构)。
我想检查宏是否是 预定义的 而不是在 header 中定义的,您只需在包含任何 header 之前检查即可。不过,我想不出你想要这样做的原因。