我知道
for (...; ...; ...)
printf ("Fulfill the limits.");
和
if (...)
printf ("Fulfill the limits.");
是C标准。
但是
for (...; ...; ...)
if (...)
for (...; ...; ...)
if (...)
for (...; ...; ...)
printf ("Fulfill all the limits.");
编译成功,运行时没有(逻辑)错误。
复杂嵌套/ if语句是否真的遵循C标准或只是 mingw32 编译器特定的
感谢。
答案 0 :(得分:4)
这是完全有效的语法。语法并不复杂,只是嵌套为x1 + (x2 + (x3 + ..)
。
也就是说,if/for
是一个语句,if/for
包含一个语句。这可以在recursive BNF grammar rules:
statement:
"if" "(" expression ")" statement |
"for" "(" expression? ";" expression? ";" expression? ")" statement |
..
答案 1 :(得分:2)
是。您的复杂(当然不是:))嵌套for
/ if
语句遵循C标准。但是
if (...; ...; ...)
不符合C标准。