アキラの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

コメント

コメントを投稿





カテゴリ「C言語」内の記事

サイト内検索

カテゴリ

最近のエントリ

関連商品

アバウト

Atom RSS
Powered by MT3.33-ja
合計:total
今日:today 昨日:yesterday