例如:
long xx = ..; //is xx in range of an int type?
我想到了这个问题,所以这不是一个真正的面试问题,就像你们中的一些人可能会问的那样。
基本上我想编写代码来使用<climits>
进行检查,例如INT_MIN
,INT_MAX
。什么是便携式,最有效的方法,如果不是不可能的话?
便携式,我的意思是它不应该是实现定义或平台相关的,例如,一个字节不总是8位。
答案 0 :(得分:1)
为什么不紧张前进?
long v = 1;
bool in_range = (int)v == v;
答案 1 :(得分:1)
#include <limits>
long xx = 5432;
if(long(numeric_limits<int>::max()) > xx)
{
int x = static_cast<int>(xx);
//...