昨天看到有人在说这个,确实比较有意思。既不违反语法,又比较出乎意料。就像C里面那种switch里嵌套一层do while语句一样。
void cpy(char* to, char* from, size_t count) { register n = (count + 7) / 8; switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); } }