■ま、久々なんで。
- 以前に書いた事のある変なswitch〜caseの別パターン(*1)。
思い出すままに。
/* vi:set ts=4 sw=4 et: */
#include <stdio.h>
#define PRE_PROC() printf( "A\n")
#define POST_PROC() printf( "C\n")
#define SP_SECTION switch(0) for(;0;POST_PROC()) case 0: if(PRE_PROC(),1)
int
main( int argc, char* argv[])
{
SP_SECTION {
printf( "B-1\n");
printf( "B-2\n");
}
return 0;
}
とか
/* vi:set ts=4 sw=4 et: */
#include <stdio.h>
#include <stdlib.h>
#define CASE(x) while(0) case (x): {
#define SKIP }
int
main( int argc, char* argv[])
{
switch( atoi(argv[1])){
CASE(0)
printf( "A\n");
SKIP;
CASE(1)
printf( "B\n");
SKIP;
case 2:
printf( "C\n");
break;
default:
printf( "D\n");
}
return 0;
}
思い出すままもなんも2パターンしか思い出せん(汗)。
前者はuITRONやってた時代に、セマフォでクリティカルセクションを書くのに使ってた覚えがあったり無かったり。
- さて、ちょっと時間も出来るようになって来たし、久々になんか作りますかねぇ?
*1 なんか今でも検索で引っかかるらしく、たま〜にアクセスがありますね
Fri Sep 9 06:14:20 2011