2014年5月31日土曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数: 関数を最大限に活用する)、エクササイズ(p.347)を解いてみる。

その他参考書籍

エクササイズ(p.347)

コード(BBEdit, Emacs)

test_sample339.c

#include <stdio.h>
#include <stdarg.h>

#include "sample347.h"

double total(int args, ...)
{
  double total = 0;
  va_list ap;
  int i;
  
  va_start(ap, args);

  for (i = 0; i < args; ++i)
    total += price(va_arg(ap, enum drink));

  va_end(ap);
  
  return total;
}

int main(int argc, char *argv[])
{
  printf("価格は%.2fです\n", total(3, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL));
  printf("価格は%.2fです\n",
         total(4, MONKEY_GLAND, MUDSLIDE, FUZZY_NAVEL, ZOMBIE));
}

Makefile

CC=cc
CFLAGS = -g -Wall
SRC=test_sample347.c sample347.c
OBJ=test_sample347.o sample347.o

all: test_sample347

test_sample347: $(OBJ)
 $(CC) $(CFLAGS) -o test_sample347 $(OBJ)

test_sample347.o: sample347.h test_sample347.c
 $(CC) $(CFLAGS) -c test_sample347.c

sample347.o: sample347.h sample347.c
 $(CC) $(CFLAGS) -c sample347.c

clean:
 rm -rf test_sample347 test_sample347.o sample347.o

入出力結果(Terminal)

$ make
cc -g -Wall -c test_sample347.c
cc -g -Wall -c sample347.c
cc -g -Wall -o test_sample347 test_sample347.o sample347.o
$ ./test_sample347
価格は16.92です
価格は22.81です
$

0 コメント:

コメントを投稿