アキラのITメモ:変なswitch文
IT関係、技術関係のメモです。
変なswitch文
C言語では、if(0)の次の文は飛ばされます。また、switch文で飛んできたものは実行できます。そういうことで、以下のような変なコードを書くことが出来ます。
#include <stdio.h>
int main(int argc, char **argv)
switch(argc){
case 1:
printf("argc = 1\n");
if (0) // 次の文は実行されない
case 2:
printf("argc = 2\n"); // この文はcase 2の場合にのみ実行
// 以降はcase 1、case 2の両方の場合に実行
printf("test message\n");
break;
default:
printf("argc = %d\n", argc);
break;
}
return 1;
}
実行結果は以下の通り
$ gcc test.c $ ./a.out argc = 1 test message $ ./a.out hoge argc = 2 test message $ ./a.out hoge hoge argc = 3
カテゴリ:
C言語
投稿日: 2006年01月25日 00:00
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/287
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/287
コメント
コメントを投稿
カテゴリ「C言語」内の記事
サイト内検索
カテゴリ
- Linux
- Linux Tips [13]
- Linux ソフトウェア [3]
- Web技術
- (X)HTML/CSS [4]
- JavaScript [1]
- MovableType [7]
- その他 [3]
- 各種API [3]
- 各種ツール [4]
- Windows
- Win Tips [3]
- Win ソフトウェア [6]
- コネタ [7]
- プログラミング
- 機器 [4]