>>128
例で書いただけですのでhogeの中の実際の処理とは違います

やはり説明が悪いみたいですね

実際のTYPEは数百の要素があり、hoge関数は数百回呼び出されます
ですので、hogeをひとつ書いておき それに渡す引数で計算を変えたいのです

例えば
hoge_1(TYPE *a){
a->a = a->b;
}

hoge_2(TYPE *a){
a->a = a->c;
}

void main(void){
TYPE a;
hoge_1(&a);
hoge_2(&a)
}

これだと、a.aに次々入れると言うだけの単調な処理なのにhoge_iのiが増えるだけコードも関数も増えていきます