"complicated-nested" "for/if statement"真的遵循C标准吗?

Does "complicated-nested" "for/if statement" really follow the C standards?

本文关键字:标准 真的 complicated-nested for if statement      更新时间:2023-10-16

我知道

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标准。