比较熟悉的是下面这几种用法:
#define lowbit(x) (x&-(x)) ///树状数组
#define INF 0x3f3f3f3f
#define MAXN 100005
在线段树模板中,还可以这样:
#define nowp SegT[id]
#define lson SegT[id*2]
#define rson SegT[id*2+1]
我们还可以这样:
void AddNum(int &id, int last, int x, int lef, int rig)
{
#define nval SegT[id].val
....
#undef nval
}
这样定义局部宏,省得冲突或者覆盖。