@define foo(x) { printf("foo(%d)\n", x); switch(x){ case 1: goto label1; case 2: goto label2; case 3: goto label3; default: printf("default\n"); } return; label1: printf("got to label!\n"); printf("kept going!\n"); label2: printf("got to label2!\n"); return; label3: printf("got to label3!\n"); } foo(0); foo(1); foo(2); foo(3);