for ( declaration expressionopt ; expressionopt ) statement
for循环的第二种语法只有一个分号,但每当我尝试使用它时,它会产生一个错误,说:
error: expected `;` before `)` token
答案 0 :(得分:7)
C11标准为for
循环指定了两种形式(§6.8.5迭代语句):
for
(
表达式 opt;
表达式 opt;
表达式 opt)
声明for
(
声明 表达式 opt;
表达式 opt _)
声明
'声明'的规则以分号结尾,因此for
循环的控制部分中必须有两个分号。
§6.7声明
声明:的
declaration-specifiers init-declarator-list opt;
static_assert声明