33,311
社区成员
发帖
与我相关
我的任务
分享
#include <algorithm>
#include <list>
#include <iostream>
#include <stdlib.h>
using namespace std;
#define new_big_than(a, b) !!( ((a) < 0 || (b) < 0) ? (((b) - (a) & (0x1 << 31)) >> 31) : (( (b) == 0)? (a): (a)/(b)) )
#define old_big_than(a, b) !!(((b) - (a) & (0x1 << 31)) >> 31)
const char* info[] = {"假", "真"};
#define PRINT_RESULT_NEW(a, b) cout << "new:\t" << a << " > " << b << "\t" << info[new_big_than(a, b)] << endl
#define PRINT_RESULT_OLD(a, b) cout << "old:\t" << a << " > " << b << "\t" << info[old_big_than(a, b)] << endl
#define PRINT_NEW(a, b) PRINT_RESULT_NEW(a, b); PRINT_RESULT_NEW(b, a)
#define PRINT_OLD(a, b) PRINT_RESULT_OLD(a, b); PRINT_RESULT_OLD(b, a)
#define PRINT(a, b) PRINT_NEW(a, b); PRINT_OLD(a, b)
int main()
{
int a = 10, b = 100, c = -10, d = -100;
unsigned int e = 0, f = 100, g = 0xffffffff ;
PRINT(a, b);
PRINT(a, c);
PRINT(a, d);
PRINT(b, c);
PRINT(b, d);
PRINT(c, d);
PRINT(e, f);
PRINT(e, g);
PRINT(f, g);
return 0;
}