ACM之define用法

264 阅读1分钟

比较熟悉的是下面这几种用法:

#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
}

这样定义局部宏,省得冲突或者覆盖。