在乘除常量时,编译器可以处理的数字大小是否有明确定义的限制?
#define val1 1000000000000000
#define val2 <some really really big number>
std::cerr << val1 * val2 << std::endl;
给定val2足够大的值,这会由于c++中的数值限制而产生错误吗?如果是这样,该限制在哪里/如何定义?
最佳答案
它将被视为整数,因此将应用最大整数(在limits.h中定义)
如果您想要一个大数字,请使用1000 ....... 0000L将其定义为长整数。
关于c++ - 数值极限-乘以非常大的常数时是否有极限?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7663071/