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