開発環境
- OS: macOS High Sierra - Apple
- Text Editor: Emacs
- コンパイラー: LLVM/Clang, GCC(gcc)
- プログラミング言語: C
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数 - 関数を最大限に活用する)、エクササイズ(p. 347)を取り組んでみる。
エクササイズ(p. 347)
Makefile
CC = cc all: run sample: sample.c $(CC) sample.c -o sample run: sample ./sample
#include <stdio.h> #include <stdarg.h> enum drink { MUDSLIDE, FUZZY_NAVEL, MONKEY_GLAND, ZOMBIE }; double price(enum drink d) { switch(d) { case MUDSLIDE: return 6.79; case FUZZY_NAVEL: return 5.31; case MONKEY_GLAND: return 4.82; case ZOMBIE: return 5.89; default: return 0; } } double total(int args, ...) { double total = 0; va_list ap; va_start(ap, args); for (int i = 0; i < args; i++) { total += price(va_arg(ap, enum drink)); } va_end(ap); return total; } int main() { printf("価格は%.2fです。\n", total(3, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL)); }
入出力結果(Terminal)
$ make cc sample.c -o sample ./sample 価格は16.92です。 $
0 コメント:
コメントを投稿