So perhaps foo(args) means foo takes a list of arguments unspecified.
result = foo(&(struct foo_args){.arg1 = 4, .arg7 = "2"})
I think what I want is llvm's blocks. Which isn't available in gcc.
So perhaps foo(args) means foo takes a list of arguments unspecified.