发现一个绝妙的语法,可以把语句转为表达式。例如
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
等结构中。