周立功手把手教你学嵌入式编程:函数指针与指针函数的应用
// 指针指向的是一个函数
这种写法确实让人非常难懂,以至于一些初学者产生误解,认为写出别人看不懂的代码才能显示自己水平高。而事实上恰好相反,能否写出通俗易懂的代码是衡量程序员是否优秀的标准。当使用typedef后,则PF就成为了一个函数指针类型。即:
typedef int (*PF)(int, int);
有了这个类型,那么上述函数的声明就变得简单多了。即:
PF ff(int);
下面将以程序清单 2.3为例,说明用函数指针作为函数返回值的用法。当用户分别输入d、x和p时,求数组的最大值、最小值和平均值。
程序清单 2.3 求最值与平均值范例程序
1 #include
2 #include
3 double getMin(double *dbData, int iSize) // 求最小值
4 {
5 double dbMin;
6
7 assert((dbData != NULL) && (iSize > 0));
8 dbMin = dbData[0];
9 for (int i = 1; i < iSize; i++){
10 if (dbMin > dbData[i]){
11 dbMin = dbData[i];
12 }
13 }
14 return dbMin;
15 }
16
17 double getMax(double *dbData, int iSize) // 求最大值
18 {
19 double dbMax;
20
21 assert((dbData != NULL) && (iSize > 0));
22 dbMax = dbData[0];
23 for (int i = 1; i < iSize; i++){
24 if (dbMax < dbData[i]){
25 dbMax = dbData[i];
26 }
27 }
28 return dbMax;
29 }
30
31 double getAverage(double *dbData, int iSize) // 求平均值
32 {
33 double dbSum = 0;
34
35 assert((dbData != NULL) && (iSize > 0));
36 for (int i = 0; i < iSize; i++){
37 dbSum += dbData[i];
38 }
39 return dbSum/iSize;
40 }
41
42 double unKnown(double *dbData, int iSize) // 未知算法
函数指针 指针函数 数据结构 ametal 程序设计 相关文章:
- 周立功教你学C语言编程与程序设计:这样写函数指针数组最好用(07-31)
- 周立功“程序设计与数据结构”:深度解剖动态分布内存的free()函数与realloc()函数(07-25)
- 周立功《程序设计与数据结构》:字符串函数(08-05)
- 嵌入式如何进一步成长,该学习哪些书呢?(08-13)
- 不完全类型和抽象数据类型的定义(08-14)
- 怎么像整数一样计算字符?(08-14)