データ構造が配列になっていない場合の対処方法
データ構造が配列になっていれば、ループを使用して、
書けるが、配列構造になっていない場合には、変数の
数だけ関数を書かなければならない。
→マクロを使用してなんとかならないか(←出発点)
(追記)マクロのほかに、ワーク用領域(配列を使って定義)を使う。
データアクセス用のAPIを用意する。と合わせて現在の所3通りの解決法があるが、
ワーク用領域を使う。と言うのがコードもスッキリして書きやすいかも
#include <stdio.h> #include <conio.h> typedef struct{ int a; int b; int c;// 配列になっていない! }hoge; #define DEFINE_print(var, str) \ void print##var(int aa){\ printf("%d %s\n", aa, str);\ return;\ } DEFINE_print(a, "aだよ"); DEFINE_print(b, "bだよ"); DEFINE_print(c, "cだよ"); int main(){ hoge o; o.a = 1; o.b = 2; o.c = 3; printa(o.a); printb(o.b); printc(o.c); getchar(); return 0; }