我正在尝试确定 RAND_MAX 是否可以放入 unsigned int 变量中。翻阅C99标准后,我只发现RAND_MAX保证值至少为32767。虽然我知道RAND_MAX扩展为int值,但我不确定它是否是long int。现在我正在使用 unsigned long int 变量,但我想简化我的源代码以使用 unsigned int 变量。
总而言之,这个假设陈述是否适用于 C99 标准:
RAND_MAX <= UINT_MAX <= ULONG_MAX
此外,RAND_MAX 是否明确小于(即不等于)UINT_MAX 或 ULONG_MAX。我意识到 RAND_MAX 的值通常是 Mersenne 素数,但我不确定这是否是标准。
最佳答案
RAND_MAX
是 rand()
可以返回的最大值。由于 rand()
被定义为返回 int
,RAND_MAX
将不会超过 INT_MAX
,因此也不会超过 UINT_MAX
。
关于c - RAND_MAX 是否保证 <= UINT_MAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13273676/