原文在此:
指標與函式
另外,附上一段 learn c the hard way 18章節的**:
#include #include #include #include /** our old friend die from ex17. */
void die(const char *message)
else
exit(1);
}// a typedef creates a fake type, in this
// case for a function pointer
typedef int (*compare_cb)(int a, int b);
/** * a classic bubble sort function that uses the
* compare_cb to do the sorting.
*/int *bubble_sort(int *numbers, int count, compare_cb cmp)}}
return target;
}int sorted_order(int a, int b)
int reverse_order(int a, int b)
int strange_order(int a, int b)
else
}/**
* used to test that we are sorting things correctly
* by doing the sort and printing it out.
*/void test_sorting(int *numbers, int count, compare_cb cmp)
printf("\n");
free(sorted);
}int main(int argc, char *argv)
test_sorting(numbers, count, sorted_order);
test_sorting(numbers, count, reverse_order);
test_sorting(numbers, count, strange_order);
free(numbers);
return 0;
}
可以看到
typedef int (*compare_cb)(int a, int b); 這個函式是函式指標,當 sorted_order , reverse_order , strang_order賦值給形參的時候,這個指標分別就指向了這些函式。
C語言指標函式和函式指標詳細介紹
當乙個函式宣告其返回值為乙個指標時,實際上就是返回乙個位址給呼叫函式,以用於需要指標或位址的表示式中。格式 型別說明符 函式名 引數 當然了,由於返回的是乙個位址,所以型別說明符一般都是int。例如 int getdate int aaa int,int 函式返回的是乙個位址值,經常使用在返回陣列的...
C語言 指標函式和函式指標
指標函式和函式指標 指標函式其實是乙個簡稱,是指帶指標的函式,它本質上是乙個函式,只是返回的是某種型別的指標。其定義的格式為 型別識別符號 函式名 參數列 函式指標,從本質上說是乙個指標,只是它指向的不是一般的變數,而是乙個函式。因為每個函式都有乙個入口位址,函式指標指向的就是函式的入口位址。其定義...
C語言 指標函式和函式指標
1 指標函式是指帶指標的函式,本質上是乙個函式,函式返回值是某一型別的指標 定義 型別識別符號 函式名 參數列 int f int x,int y 它首先是乙個函式,只不過這個函式的返回值是乙個位址值,函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且,在主調函式中,函...