积极答复者
函數指針 的問題

问题
答案
-
函数指针主要用来支持回调函数。
如果你直接用函数名调用函数,那这个调用在编译时就唯一确定了。有些情况下,编译的时候不知道该调用哪个函数,这时就需要函数指针。比如 CRT 函数 qsort,
void qsort( void* base, size_t num, size_t width, int (__cdecl* compare)(const void*, const void*) );
qsort 需要用户定义的比较大小函数。由于这个比较函数是用户定义的,在 qsort 的函数体内不可能按函数名调用它,因为此刻它还不存在。这就只能使用函数指针确定函数原型以正确编译,函数的具体地址在用户调用 qsort 时传入。- 已标记为答案 慕容嘉美 2012年11月16日 8:48
全部回复
-
函数指针主要用来支持回调函数。
如果你直接用函数名调用函数,那这个调用在编译时就唯一确定了。有些情况下,编译的时候不知道该调用哪个函数,这时就需要函数指针。比如 CRT 函数 qsort,
void qsort( void* base, size_t num, size_t width, int (__cdecl* compare)(const void*, const void*) );
qsort 需要用户定义的比较大小函数。由于这个比较函数是用户定义的,在 qsort 的函数体内不可能按函数名调用它,因为此刻它还不存在。这就只能使用函数指针确定函数原型以正确编译,函数的具体地址在用户调用 qsort 时传入。- 已标记为答案 慕容嘉美 2012年11月16日 8:48