发现一个绝妙的语法,可以把语句转为表达式。例如
int main() {
return ({
for (int i = 2; i <= 100000; ++i)
log_[i] = 1 + log_[i >> 1];
int T;
scanf("%d", &T);
while (T--)
Solve();
0;
});
}
原理是,表达式 ({A; B; ...; Z;}) 会返回 Z 的值(可以为 void()),其中 A, B, ..., Z 是语句。
这样的用法也可以运用于 if、while、for 等结构中。