这个C代码为什么/如何编译?它做了什么?

时间:2017-04-12 11:50:54

标签: c compilation

我有一个C代码,其中一个do循环在switch语句的第一个分支中启动。有点奇怪的是,switch语句的其余分支都在do循环体内。首先,这段代码如何编译?第二,它可能做什么?

void f(char *x, char *y, int z) {
    int z2 = (z + 7) / 8;
    switch(z % 8) {
        case 0: do { *x++ = *y++;
        case 7: *x++ = *y++;
        case 6: *x++ = *y++;
        case 5: *x++ = *y++;
        case 4: *x++ = *y++;
        case 3: *x++ = *y++;
        case 2: *x++ = *y++;
        case 1: *x++ = *y++;
                } while(--z2 > 0);
    }
}

0 个答案:

没有答案