C++ 刷题的时候,用下面这段代码 替换输入函数cin,效率高10倍,真的是10倍

#define gc() (p1==p2 && (p1=bf,p2=bf+fread(bf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char bf[1 << 21], *p1(bf), *p2(bf);
template<class T>
void read(T& x) {
char c(gc());
char neg(0);
T t(0);
for (; c != EOF && !isdigit(c); c = gc()) {
neg = '-' == c;
}
for (; isdigit(c); c = gc()) {
t = 10 * t + (c & 15);
}
x = neg ? -t : t;
}