Guest User

Untitled

a guest
Jul 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <assert.h>
  3.  
  4. FILE *log_func_call;
  5.  
  6. typedef int (*func_t)(int arg);
  7.  
  8. int foo(int a) {
  9. return a + 1;
  10. }
  11.  
  12. func_t create_wrap_function(func_t f) {
  13. int wrapped(int arg) {
  14. // call original function
  15. int val = f(arg);
  16. fprintf(log_func_call, "arg: %d ret: %d", arg, val);
  17. return val;
  18. }
  19. return wrapped;
  20. }
  21.  
  22. int main(int argc, char* argv[]) {
  23. assert(log_func_call = fopen("log_func_call", "w"));
  24. func_t bar = create_wrap_function(foo);
  25. printf("%d\n", bar(2));
  26.  
  27. return 0;
  28. }
Add Comment
Please, Sign In to add comment