一个明显的问题是使用来自limits.h的CHAR_BIT而不是硬连接'8''。 One obvious issue is to use CHAR_BIT from limits.h instead of a hard wired ''8''. 另一个是使用1u而不是1,以满足系统的需要 UCHAR_MAX> INT_MAX。 但我实际上不得不质疑ptr是什么类型以及为什么作者感觉需要(unsigned char *)强制转换。 [就个人而言,我认为标准可以通过定义 UINT_BIT和ULONG_BIT等来帮助这些情况......以表示(符号+)的数量值位 在给定的整数类型中,而不仅仅是unsigned char。] - PeterThe other would be to use 1u instead of 1, to cater for systems whereUCHAR_MAX > INT_MAX.But I''d actually have to question what type ptr is and why the author feelsthe need for the (unsigned char *) cast.[Personally, I think the standard could help in these situations by definingUINT_BIT and ULONG_BIT etc... to indiciate the number of (sign+) value bitsin a given integer type, not just unsigned char.]--Peter 一个明显的问题是使用CHAR_BIT来自limits.h而不是硬连接''8''。 One obvious issue is to use CHAR_BIT from limits.h instead of a hard wired ''8''. 对我来说并不明显。是不是保证是8位? MikeNot obvious to me. Isn''t char guaranteed to be 8 bits?Mike 这篇关于Bitset宏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-05 09:49