下面的代码是否在所有平台上都能按预期工作,无论int大小,等等?还是有一种更容易被接受的方式呢?(我做了以下说明。)
#define MAX_NON_NEGATIVE_INT ((int)(((unsigned int)-1) / 2))我不会通过解释它在做什么来侮辱你的智慧!
编辑:我应该提到我不能使用任何标准类,因为我在没有C运行时的情况下运行。
发布于 2010-09-27 20:57:13
如果您不想使用定义(并且您想要一种计算限制的标准方法),请执行以下操作:
#include <limits>
std::numeric_limits<int>::min()这些是在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 */以下是来自BaseTsd.h的定义:
#define MAXUINT ((UINT)~((UINT)0))
#define MAXINT ((INT)(MAXUINT >> 1))
#define MININT ((INT)~MAXINT)发布于 2010-09-27 20:57:54
有一个a standard way to this
#include <limits>
#include <iostream>
cout << numeric_limits<unsigned int>::max();作为标准,这可以保证在所有平台上都是可移植的。
发布于 2010-09-27 20:57:38
#include <climits>
INT_MAXhttps://stackoverflow.com/questions/3803961
复制相似问题