どうしても気になるんなら union にしときゃいい

union args {
struct { int a,b,c, … } forA;
struct { double A,B,C, … } forB;
 …
struct { int a,b,c, … } forZ;
};

void func1(union args *args) { args->forA.a += 1; }
void func2(union args *args) { args->forB.A += 1; }