fork download
  1. #include <stdio.h>
  2.  
  3. struct job_table_t {
  4. void(*init)();
  5. void(*job)();
  6. };
  7.  
  8. void init_1() {
  9. printf("init job1\n");
  10. }
  11.  
  12. void job_1() {
  13. printf("job1\n");
  14. }
  15.  
  16. struct job_table_t job1_item = { init_1, job_1 };
  17.  
  18. void init_2() {
  19. printf("init job2\n");
  20. }
  21.  
  22. void job_2() {
  23. printf("job2\n");
  24. }
  25.  
  26. struct job_table_t job2_item = { init_2, job_2 };
  27.  
  28. int main()
  29. {
  30. int i;
  31. struct job_table_t *job_table[] = { &job1_item, &job2_item };
  32.  
  33. for (i = 0; i < sizeof(job_table) / sizeof(job_table[0]); i++)
  34. job_table[i]->init();
  35.  
  36. for (i = 0; i < sizeof(job_table) / sizeof(job_table[0]); i++)
  37. job_table[i]->job();
  38. }
Success #stdin #stdout 0s 9432KB
stdin
Standard input is empty
stdout
init job1
init job2
job1
job2