/* contrived usage example */ #include #include #include "thunk.h" THUNK_DEFINE_STATIC(sum, int, a, int, b, int *, res) { *res = a + b; return 0; } THUNK_DEFINE_STATIC(mult, int, a, int, b, int, c, int *, res) { *res = a * b * c; return 0; } int normalized_helper(thunk_t *thunk) { return thunk_dispatch(thunk); } int main(void) { int out; normalized_helper(THUNK(sum(1, 2, &out))); printf("out: %i\n", out); normalized_helper(THUNK(mult(9, 7, 100, &out))); printf("out: %i\n", out); return EXIT_SUCCESS; }