C++不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取"别名",该功能是通过关键字typedef来完成的。例如,有整型量a、b: |
这里是定义了一个指向参数为空,返回值为空的函数的指针类型。 比如: #include<iostream> #include<stdlib.h> using namespace std; typedef void ( *funcptr)(void); //定义指针类型 void fun1(void) //定义函数一 { cout << "This is fun1" << endl; } void fun2(void) 定义函数二 { cout << "This is fun2" << endl; } int main() { funcptr p1; //定义了一个该类型的指针p1 p1 = fun1; //p1指向函数一 p1(); p1 = fun2; //p1指向函数二 p1(); system("pause"); }定义一个函数指针类型。 比如你有三个函数: void hello(void) { printf("你好!"); } void bye(void) { printf("再见!"); } void ok(void) { printf("好的!"); } typdef void (*funcptr)(void); 这样就构造了一个通用的函数 你用的时候可以这样: void speak(int id) { funcptr words[3] = {&hello, &bye, &ok}; funcptr fun = words[id]; (*fun)(); } 这样的话,如果speak(0)就会显示“你好!” speak(1)就会显示“再见!” speak(2)就会显示“好的!” 用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用函数指针。 比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表,等等