i****d 发帖数: 255 | 1 按照我的理解,如果要把一个函数(A)指针当成参数传给另外一个函数(B),在函数B的参
数表里需要把函数A的类型和它所有参数的类型全部带上,这样函数B的参数表就会非常
冗长。比如:
double B(double a, double b, double (*A)(double, int, char*, double*))
不知道我的理解是否正确,各位有没有好的解决方法。
多谢! | f*****Q 发帖数: 1912 | | i****d 发帖数: 255 | 3 不太明白楼上的反问。
要我说,至少在C里面,仅传递函数名本身就可以了,因为不会有函数同名或者重载的
问题。函数名本身就可以唯一的代表一个函数,不再需要在传递函数指针时还带上所有
的参数类型。
对吗?
【在 f*****Q 的大作中提到】 : 你说为什么要这样呢?
| f*******y 发帖数: 988 | 4 typedef 一下
【在 i****d 的大作中提到】 : 按照我的理解,如果要把一个函数(A)指针当成参数传给另外一个函数(B),在函数B的参 : 数表里需要把函数A的类型和它所有参数的类型全部带上,这样函数B的参数表就会非常 : 冗长。比如: : double B(double a, double b, double (*A)(double, int, char*, double*)) : 不知道我的理解是否正确,各位有没有好的解决方法。 : 多谢!
| f*******y 发帖数: 988 | 5 你这个是run time
compile-time需要让compiler知道他们是不同的函数类型
当然你可以说compiler不管了,run-time再报错好了,这是设计理念的问题
【在 i****d 的大作中提到】 : 不太明白楼上的反问。 : 要我说,至少在C里面,仅传递函数名本身就可以了,因为不会有函数同名或者重载的 : 问题。函数名本身就可以唯一的代表一个函数,不再需要在传递函数指针时还带上所有 : 的参数类型。 : 对吗?
| i****d 发帖数: 255 | 6 "这是设计理念的问题",get it!
Thank you all!
【在 f*******y 的大作中提到】 : 你这个是run time : compile-time需要让compiler知道他们是不同的函数类型 : 当然你可以说compiler不管了,run-time再报错好了,这是设计理念的问题
| f*******y 发帖数: 988 | 7 我友善的提醒一下,我的水平不是很高
答案仅供你参考
【在 i****d 的大作中提到】 : "这是设计理念的问题",get it! : Thank you all!
| y*******g 发帖数: 6599 | 8 typedef
【在 i****d 的大作中提到】 : 按照我的理解,如果要把一个函数(A)指针当成参数传给另外一个函数(B),在函数B的参 : 数表里需要把函数A的类型和它所有参数的类型全部带上,这样函数B的参数表就会非常 : 冗长。比如: : double B(double a, double b, double (*A)(double, int, char*, double*)) : 不知道我的理解是否正确,各位有没有好的解决方法。 : 多谢!
|
|