#include <stdio.h>

struct job_table_t {
	void(*init)();
	void(*job)();
};

void init_1() {
	printf("init job1\n");
}

void job_1() {
	printf("job1\n");
}

struct job_table_t job1_item = { init_1, job_1 };

void init_2() {
	printf("init job2\n");
}

void job_2() {
	printf("job2\n");
}

struct job_table_t job2_item = { init_2, job_2 };

int main()
{
	int i;
	struct job_table_t *job_table[] = { &job1_item, &job2_item };

	for (i = 0; i < sizeof(job_table) / sizeof(job_table[0]); i++)
		job_table[i]->init();

	for (i = 0; i < sizeof(job_table) / sizeof(job_table[0]); i++)
		job_table[i]->job();
}