2018年9月16日日曜日

開発環境

  • OS: macOS High Sierra - Apple
  • Text Editor: Emacs
  • コンパイラー: LLVM/Clang, GCC(gcc)
  • プログラミング言語: C

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド - 独自の構造を使う)、長いエクササイズ(p. 228)を取り組んでみる。

長いエクササイズ(p. 228)

Makefile

cc = cc

all: sample run

sample: sample.c
 cc sample.c -o sample

run: sample
 ./sample

コード

#include <stdio.h>

struct Exercise {
  const char *description;
  float duration;
};

struct Meal {
  const char *ingredients;
  float weight;
};

struct Preferencs {
  struct Meal food;
  struct Exercise exercise;
};

struct Fish {
  const char *name;
  const char *species;
  int teeth;
  int age;
  struct Preferencs care;
};

void label(struct Fish f) {
  printf("名前: %s\n種類: "
         "%s\n%i本の歯、%i才\n餌は%2.2fキロの%sを与え、%sを%2."
         "2f時間行わせます。\n",
         f.name, f.species, f.teeth, f.age, f.care.food.weight,
         f.care.food.ingredients, f.care.exercise.description,
         f.care.exercise.duration);
}

int main() {
  struct Fish snappy = {"スナッピー",
                        "ピラニア",
                        69,
                        4,
                        {{"肉", 0.1}, {"ジャグジーでの泳ぎ", 7.5}}};
  label(snappy);
}

入出力結果(Terminal)

$ make
cc sample.c -o sample
./sample
名前: スナッピー
種類: ピラニア
69本の歯、4才
餌は0.10キロの肉を与え、ジャグジーでの泳ぎを7.50時間行わせます。
$

0 コメント:

コメントを投稿

関連コンテンツ