一、定义函数
代码
#include<iostream>
using namespace std;
typedef int (FUNC)(int, int);
FUNC add;
int main()
{
cout << add(1, 2) << endl;
return 0;
}
int add(int a, int b)
{
return a + b;
}
其中,typedef int (FUNC)(int,int),就是定义了一个函数类型FUNC,可以使用FUNC去定义函数。
从左到右三部分解释:
-
第一个int为函数的返回值类型;
-
FUNC为可以定义函数的类型名;
-
(int,int)为定义的函数所具有的参数,共两个参数,均为int。
比如,示例代码中FUNC add,就是定义了一个名为add、返回值类型为int、具有两个参数且参数类型均为int的函数。这里,FUNC add;与nt add(int,int);等价。
二、定义函数指针
代码
#include<iostream>
using namespace std;
typedef int (*FUNC_P)(int, int);
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int main()
{
FUNC_P p = add;
cout << p(1, 2) << endl;
p = sub;
cout << p(1, 2) << endl;
return 0;
}
typedef int (*FUNC_P)(int, int)定义了一个函数指针类型,可以使用FUNC_P去定义指向函数的指针,其指向的函数类型必须是返回值为int、参数为两个且均为int。
比如FUNC_P p=add,就是定义了一个指针p,并且让其指向add函数。此时,p(1,2)等价于add(1,2)。
之后,可以改变指针指向,如,p=sub让其指向sub函数。
本文介绍了C++中typedef的用法,通过定义函数类型别名FUNC,展示了如何声明和使用该类型定义的函数。同时,还详细阐述了函数指针的概念,通过typedef定义函数指针类型FUNC_P,并演示了如何赋值和调用函数指针,以及如何改变指针的指向。内容涵盖了函数类型别名和函数指针的基础知识及应用实例。
2363

被折叠的 条评论
为什么被折叠?



