当前位置:  开发笔记 > 编程语言 > 正文

如何在以下代码中将参数传递给函数指针?

如何解决《如何在以下代码中将参数传递给函数指针?》经验,为你挑选了1个好方法。



1> Andrew Henle..:

如果你typedef的函数指针,这种调用更容易理解:

#include
#include

// addFuncPtr_t is a pointer to a function that:
// - returns int
// - takes two int arguments
typedef int ( *addFuncPtr_t )( int, int );

int add(int x, int y) {
    return (x + y);
}
void passptr(addFuncPtr_t fp, int a, int b) {
    int result = fp(a, b);
    printf("%d", result);
}
int main() {
    add(3, 5);

    // note that the function is passed separately from
    // the arguments - add(3,5) would *call* the function
    // instead of passing the address of the function
    passptr( add, 3, 5 );
    getch();
    return 0;
}


@ DavidC.Rankin这不是关于保存类型,而是为了帮助理解,因为很明显,当类型变为不透明时,函数指针的参数与`passptr`的参数无关.
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有