我知道
for (...; ...; ...)
printf ("Fulfill the limits.");
和
if (...)
printf ("Fulfill the limits.");
是C标准。
但是
for (...; ...; ...)
if (...)
for (...; ...; ...)
if (...)
for (...; ...; ...)
printf ("Fulfill all the limits.");
已成功编译,并且运行时没有(逻辑)错误。
复杂的嵌套for/if语句真的遵循C标准吗?还是仅仅遵循mingw32编译器特定?
有参考资料吗
谢谢。
这是一个非常有效的语法。语法并不复杂,只是像x1 + (x2 + (x3 + ..)
一样嵌套。
也就是说,if/for
是一条语句,if/for
包含语句。这可以在递归BNF语法规则中看到:
statement:
"if" "(" expression ")" statement |
"for" "(" expression? ";" expression? ";" expression? ")" statement |
..
是。您复杂的(当然不是:)嵌套for
/if
语句遵循C标准。但是
if (...; ...; ...)
不符合C标准。