//定义一个指针类型,该指针类型可以表示int xxx(void)函数指针 typedef int (init_fnc_t)(void) int arch_cpu_init(void) { s5p_set_cpu_id(); return 0; } ... int dram_init(void) { return 0; } //定义一个指针数组init_sequence,里面每一个内容都是函数的指针 init_fnc_t *init_sequence[] = { arch_cpu_init, //arch_cpu_init这是一个函数,此处表示将arch_cpu_init函数的指针保存 timer_init, env_init, init_baudrate, serial_init, console_init_f, display_banner, dram_init, NULL, }; void func_init(void) { init_fnc_t **init_fnc_ptr; //初始化指针数组中的所有函数 for(init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if((*init_fnc_ptr)() != 0) { return; } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)