是否有任何c ++标准段落表示使用-1此方法是可移植和正确的方法或正确执行此操作的唯一方法是使用预定义值?
我有一个谈话与我的同事,什么是更好的:使用-1最多的无符号整数,或者使用从价值limits.h还是std::numeric_limits?
我已经告诉我的同事,使用预定义的最大值,limits.h或者std::numeric_limits是这样做的便携和干净的方式,然而,同事反对-1像数字限制一样可移植,而且更多,它还有一个优点:
unsigned short i = -1; // unsigned short max
Run Code Online (Sandbox Code Playgroud)
可以轻松更改为任何其他类型,如
unsigned long i = -1; // unsigned long max
Run Code Online (Sandbox Code Playgroud)
当使用limits.h头文件中的预定义值时,或者std::numeric_limits还需要将其与左侧的类型一起重写.
可能重复:
如何将变量设置为C中可能的最大数量?
int的最大值
我需要在我的代码中使用最大整数值,但我不想显式写4294967295.它是在某处定义的吗?
我一直以为在C中int代表signed int; 但我听说这种行为是特定于平台的,在某些平台上int是unsigned默认的.这是真的吗?什么说标准,并随着时间的推移而演变?
以下代码将x设置为"infinity"
#include <limits.h>
int x = INT_MAX;
Run Code Online (Sandbox Code Playgroud)
当我说int x = 3;,编译器正在为变量x分配一些内存资源.当我说的时候,在编译器方面发生了什么int x = INT_MAX.