#include <stdio.h> #include <stdlib.h> int a (void) { printf("aaaaa\n"); return 0; } int b (void) { printf("bbbbb\n"); return 0; } int c (void) { printf("ccccc\n"); return 0; } int main (void) { int (*ab[])(void)={a,b,c,NULL}; int (**ab_ptr)(void); for (ab_ptr=ab; *ab_ptr; ++ab_ptr) { (*ab_ptr)(); } return 0; }
用typedef的寫法---【轉貼】 uboot source code
typedef int (init_fnc_t) (void);
//這行定義了一個無需傳入參數(void)且返回整數型態(int)的函式型態別名叫init_fnc_t
int main (void) { init_fnc_t **init_fnc_ptr; init_fnc_t *init_sequence[] = { a, b,
NULL }; for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { //if((*init_fnc_ptr)() != 0); (*init_fnc_ptr)(); } return 0; }
補充: 【轉貼 工程師的家】
1.
typedef int ToInt(char *str);
//上面這行定義了一個需傳入字串(char *)且返回整數(int)的函式型態別名叫 ToInt
ToInt HexToInt,DecToInt;//宣告HexToInt,DecToInt這兩個函式
現在你的程式可以呼叫HexToInt(...),DecToInt(...)了。
2.
typedef int* intP;
const intP p2;
p2 會是哪一種 type 的變數呢? 是第二種.
如果用 #define intP int*, 就會是第一種.
沒有留言:
張貼留言