0 c++
以下是否在所有平台,int的大小等方面按预期工作?或者有更可接受的方式吗?(我做了以下的事.)
#define MAX_NON_NEGATIVE_INT ((int)(((unsigned int)-1) / 2))
Run Code Online (Sandbox Code Playgroud)
我不会通过解释它正在做的事来侮辱你的智慧!
编辑:我应该提到我不能使用任何标准类,因为我在没有C运行时运行.
Pét*_*rök 11
有一种标准的方法:
#include <limits>
#include <iostream>
cout << numeric_limits<unsigned int>::max();
Run Code Online (Sandbox Code Playgroud)
作为标准,这保证可以在所有平台上移植.
如果您不想使用定义(并且您想要一种计算限制的标准方法),那么执行以下操作:
#include <limits>
std::numeric_limits<int>::min()
Run Code Online (Sandbox Code Playgroud)
这些是limits.h中定义的ANSI标准:
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
Run Code Online (Sandbox Code Playgroud)
这些是BaseTsd.h的定义:
#define MAXUINT ((UINT)~((UINT)0))
#define MAXINT ((INT)(MAXUINT >> 1))
#define MININT ((INT)~MAXINT)
Run Code Online (Sandbox Code Playgroud)