2014年4月6日日曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数)、プールパズル(p.335)を解いてみる。

その他参考書籍

プールパズル(p.335)

コード(BBEdit, Emacs)

sample335header.h

enum response_type {DUMP, SECOND_CHANCE, MARRIAGE};
typedef struct {
  char *name;
  enum response_type type;
} response;
void dump(response r);
void second_chance(response r);
void marriage(response r);

sample335.c

#include "sample335header.h"

int main(int argc, char *argv[])
{
  response r[] =  {
    {"マイク", DUMP}, {"ルイス", SECOND_CHANCE},
    {"マット", SECOND_CHANCE}, {"ウィリアム", MARRIAGE}
  };
  int i;

  for (i = 0; i < 4; ++i) {
    switch (r[i].type) {
    case DUMP:
      dump(r[i]);
      break;
    case SECOND_CHANCE:
      second_chance(r[i]);
      break;
    default:
      marriage(r[i]);
      break;
    }
  }

  return (0);
}

Makefile

all: sample335

sample335: sample335.o sample335header.o
 cc -g -o sample335 sample335.o sample335header.o

sample335.o: sample335.c sample335header.h
 cc -c sample335.c

sample335header.o: sample335header.c sample335header.h
 cc -c sample335header.c

入出力結果(Terminal)

$ make && ./sample335
cc -c sample335.c
cc -c sample335header.c
cc -g -o sample335 sample335.o sample335header.o
マイクさんへ
残念ながら、前回のデートの結果、
再度お会いすることはないとの連絡を受けました。
ルイスさんへ、
良いお知らせです。前回のデートの結果、
お会いしたいとの連絡を受けました。至急ご連絡ください。
マットさんへ、
良いお知らせです。前回のデートの結果、
お会いしたいとの連絡を受けました。至急ご連絡ください。
ウィリアムさんへ
おめでとうございます!前回のデートの結果、
結婚を申し込みたいとの連絡を受けました。
$

0 コメント:

コメントを投稿