,函数指针如何调用
函数指针到底该怎么用?有些编程方法,你不熟悉就基本不怎么用,但是一旦当你发现它的好处,你总是会想办法用上它。函数指针Pwr_Mode_Manager,就是指向函数的指针,这跟C中虚表的比较类似,这个指针可以指向函数数组中任意函数成员,这样我在后续调用的过程中,调用语句完全不用变Pwr_Mode_Manager(),只需要修改power_moding_state变量值就行了,这也类似C中多态的概念。
1、带有参数的函数,如果通过函数指针调用。既然能够给结构体中的指针赋以函数指针,显然这个指针也是一个函数指针,则在调用这个指针时直接传给参数就可以了。函数指针的声明方法为:返回值类型(*指针变量名)([形参列表]);注1:“返回值类型”说明函数的返回类型,“(指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
2、用普通指针怎样调用函数调用函数需要使用函数指针啊,函数指针是指向函数的指针变量。因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。函数指针的声明方法为:函数类型(标志符指针变量名)(形参列表);注1:“函数类型”说明函数的返回类型,“(标志符指针变量名)”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
3、C语言调用函数指针不好的编码规范。函数声明最好在main函数的前面,老师的代码定义的swap函数传入的形参是指针变量,是固定的4个字节,比你的代码传值程序运行更快。函数只用来实现相应功能,这样才可以实现代码复用,不要在里面写输出语句,这样代码会大大减少复用性,首先函数声明放在main函数外,其次zhizhen调用时,括号内不加*最后指针函数内部,你的是传入值,你老师的是传入指针你的zhizhen函数实际上不会交换ab值,因为传值是传入副本只有传入指针才会交换。