#include <iostream>
using namespace std;
typedef void (*Fun) (int); // 1. 用typedef简化函数指针的定义
void function_Of_Long_Name(int i ) {
cout<<"function_Of_Long_Name"<<endl;
}
void special_Fun(Fun f, int i) { // 3. 函数指针形参
//void special_Fun( void (*f)(int), int i){ // 等效
cout << "special_Fun" << endl;
f(i);
}
int main() {
// 2. 两者形参以及返回值必须一致
Fun tmp0 = 0;
Fun tmp1 = function_Of_Long_Name;
Fun tmp2= &function_Of_Long_Name; // 效果与上一行代码一致
special_Fun(tmp1, 1); // 对应知识点3
//4. 具有函数类型的形参所对应的实参将被自动转换为指向相应函数类型的指针。
// 但是,当返回的是函数时,同样的转换则无法实现:P239
return 0;
}
C++ Primer 7.9 指向函数的指针
最新推荐文章于 2022-06-11 22:03:16 发布