Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当语法工作时,这是怎么做的?_C++_Do While - Fatal编程技术网

C++ 当语法工作时,这是怎么做的?

C++ 当语法工作时,这是怎么做的?,c++,do-while,C++,Do While,惊讶地发现这个被编译了 do do do int a=1; while(0); while(0); while(0); 我觉得很奇怪。请解释一下thx,它只是三个嵌套的do-while循环 do { do { do { int a=1; } while(0); } while(0); } while(0); 为什么您认为它不应该编译?如果If、for等中只有一个语句,

惊讶地发现这个被编译了

do do do int a=1; while(0); while(0); while(0);

我觉得很奇怪。请解释一下thx,它只是三个嵌套的do-while循环

do
{
    do
    {
        do
        {
            int a=1;
        } 
        while(0);
    } 
    while(0);
} 
while(0);

为什么您认为它不应该编译?如果If、for等中只有一个语句,那么您不需要“{”并且“}”不会在GCC4.7.2上编译。int a=1在没有大括号的情况下有问题。@Lougler,有趣的是,它出现在4.7.3上。@chris您链接到的站点说gcc已被选中,但它在底部显示的命令行使用了g++。使用g++时,它确实可以很好地编译。对于gcc来说,情况并非如此。我觉得我的包裹很好用。