为什么RAND_MAX是C++中的一个宏?

01d*_*01d 0 c++ random

为什么不是const?我认为这不是一个明确的C++方式.也许有更多的C++方法来生成随机数,是吗?

Jam*_*lis 11

RAND_MAX 来自C标准库,它被定义为宏.

在C中,宏是定义清单常量的方式.甲const对象实际上不是在C(这意味着一个恒定const不能在常量表达式中使用对象).


Yip*_*Yay 6

如果您正在寻找"更多C++ - 方式",您可以使用boost::random.

无论如何,它RAND_MAX是一个宏,因为它来自"遗留C" rand()函数,其中使用预处理器符号来声明常量是事实上的标准.