Closed fuhsnn closed 6 months ago
#include <stdio.h> #include <stdarg.h> void fn1(void) { printf("fn1\n"); } void fn2(void) { printf("fn2\n"); } void va_fn(int cnt, ...) { va_list ap; va_start(ap, cnt); for(int i = 0; i < cnt; i++) { va_arg(ap, void(*)(void))(); } va_end(ap); } int main(void) { va_fn(2, &fn1, &fn2); }
got
*(ty *)(klass == 0 ? __va_arg_gp(... ^ expected ')'
This is actually a gcc/clang extension, the standard only covers pointer types obtainable by "simply by postfixing a *".
got