Cで引数リスト部分が空の関数ポインタと構造体値渡しを↓のように組み合わせて使うのはNGですか?
#include <stdio.h>
long func(long a, char b, short c) {
 return a+b+c;
}
int main(int argc, char *argv[]) {
 long(*pfunc)() = func;
 struct {
  union {
   char a;
   short b;
   long c;
  } u[3];
 } param;
 param.u[0].a = 1;
 param.u[1].b = 2;
 param.u[2].c = 3;
 printf("%d\n", pfunc(param));
 return 0;
}