像java中的Integer.MaxValue
函数一样,C/C++中有没有代码可以找到整数的最大值(对应于编译器)?
发布于 2009-12-06 22:01:07
#include <climits>
#include <iostream>
using namespace std;
int main() {
cout << INT_MAX << endl;
}
发布于 2012-03-22 22:46:03
为什么不写一段代码,比如:
int max_neg = ~(1 << 31);
int all_ones = -1;
int max_pos = all_ones & max_neg;
发布于 2016-06-13 16:40:22
下面是我用来获取带符号整数的最大值的宏,它与所使用的带符号整数类型的大小无关,对于这个宏,gcc -Woverflow不会抱怨
#define SIGNED_MAX(x) (~(-1 << (sizeof(x) * 8 - 1)))
int a = SIGNED_MAX(a);
long b = SIGNED_MAX(b);
char c = SIGNED_MAX(c); /* if char is signed for this target */
short d = SIGNED_MAX(d);
long long e = SIGNED_MAX(e);
https://stackoverflow.com/questions/1855459
复制相似问题