此website声明宏RAND_MAX
的值与库相关,最小值为32767。不再赘述。
库依赖是什么意思?这是否意味着假设来自两个不同库的两个宏RAND_MAX
,我们必须通过使用不同的名称空间来区分它们?
为什么最小值RAND_MAX
32767
最佳答案
这意味着标准库有不同的实现,并且每个都可以以不同的方式定义RAND_MAX,尽管它必须始终至少为32767。
不会涉及命名空间,因为RAND_MAX是一个不在命名空间中的宏。无论如何,通常一次只能链接一个标准库。它通常随编译器一起提供,您只需使用它即可。您可以从其他库中获得其他随机数生成器,但通常应使用RAND_MAX以外的其他值来指示它可以/将创建的最大值。特别是,如果您的编译器包括它,则可能要使用C ++的新“本机”随机数生成类(有关详细信息,请参见<rand>
的文档)。
最小值32767主要是因为这是INT_MAX的最小值。在16位实现中(编写C89标准时仍然很常见),这是这些实现可以方便使用的最大有符号整数。
关于c++ - 为什么宏的最小值:RAND_MAX,32767,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21681890/