Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <assert.h>
- FILE *log_func_call;
- typedef int (*func_t)(int arg);
- int foo(int a) {
- return a + 1;
- }
- func_t create_wrap_function(func_t f) {
- int wrapped(int arg) {
- // call original function
- int val = f(arg);
- fprintf(log_func_call, "arg: %d ret: %d", arg, val);
- return val;
- }
- return wrapped;
- }
- int main(int argc, char* argv[]) {
- assert(log_func_call = fopen("log_func_call", "w"));
- func_t bar = create_wrap_function(foo);
- printf("%d\n", bar(2));
- return 0;
- }
Add Comment
Please, Sign In to add comment