一个宏定义的用法
来源:互联网 发布:ipad1越狱安装软件 编辑:程序博客网 时间:2024/04/30 00:32
宏定义就是简单的替换,之前没见过带符号的替换,看到这个有点懵了,记录如下。这里用 n, 代替 FNINFO(n,l),用的很巧妙。
#define FNINFO(n,l) n,
MeasValue (*(MeasFnTbl[]))() = {
# include <names.h>
};
/*
以下为names.h中内容:
FNINFO( doMinMaxMidHiLo, MIN )
FNINFO( doMinMaxMidHiLo, MAX )
FNINFO( doMinMaxMidHiLo, PEAKTOPEAK )
FNINFO( doMinMaxMidHiLo, MID )
FNINFO( doMinMaxMidHiLo, HIGH )
FNINFO( doMinMaxMidHiLo, LOW )
FNINFO( amplitude, AMPLITUDE )
FNINFO( mean, MEAN )
其中
#define MIN 0
#define MAX 1
#define PEAKTOPEAK 2
#define MID 3
#define HIGH 4
#define LOW 5
#define AMPLITUDE 6
利用宏定义替换头文件中内容:
FNINFO( doMinMaxMidHiLo, MIN ) 替换成 doMinMaxMidHiLo,
FNINFO( doMinMaxMidHiLo, MAX ) 替换成doMinMaxMidHiLo,
FNINFO( doMinMaxMidHiLo, PEAKTOPEAK ) 替换成doMinMaxMidHiLo,
......
上面那个函数指针数组就变成了:
MeasValue (*(MeasFnTbl[]))() = {
doMinMaxMidHiLo,
doMinMaxMidHiLo,
doMinMaxMidHiLo,
};
它是这样使用的:
typedef Double MeasValue;
MeasValue value = (MeasValue) (*MeasFnTbl[meas])(Pwfm, Pqual); // meas就是一个int型
*/
#define FNINFO(n,l) n,
MeasValue (*(MeasFnTbl[]))() = {
# include <names.h>
};
/*
以下为names.h中内容:
FNINFO( doMinMaxMidHiLo, MIN )
FNINFO( doMinMaxMidHiLo, MAX )
FNINFO( doMinMaxMidHiLo, PEAKTOPEAK )
FNINFO( doMinMaxMidHiLo, MID )
FNINFO( doMinMaxMidHiLo, HIGH )
FNINFO( doMinMaxMidHiLo, LOW )
FNINFO( amplitude, AMPLITUDE )
FNINFO( mean, MEAN )
其中
#define MIN 0
#define MAX 1
#define PEAKTOPEAK 2
#define MID 3
#define HIGH 4
#define LOW 5
#define AMPLITUDE 6
利用宏定义替换头文件中内容:
FNINFO( doMinMaxMidHiLo, MIN ) 替换成 doMinMaxMidHiLo,
FNINFO( doMinMaxMidHiLo, MAX ) 替换成doMinMaxMidHiLo,
FNINFO( doMinMaxMidHiLo, PEAKTOPEAK ) 替换成doMinMaxMidHiLo,
......
上面那个函数指针数组就变成了:
MeasValue (*(MeasFnTbl[]))() = {
doMinMaxMidHiLo,
doMinMaxMidHiLo,
doMinMaxMidHiLo,
};
它是这样使用的:
typedef Double MeasValue;
MeasValue value = (MeasValue) (*MeasFnTbl[meas])(Pwfm, Pqual); // meas就是一个int型
*/
0 0
- 一个宏定义的用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个技巧用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个变态用法
- C语言中宏定义的一个调试用法,巧用宏定义来调试,调试技巧
- C语言中宏定义的一个调试用法,巧用宏定义来调试,调试技巧
- 宏定义中"#"的用法
- Freemarker定义宏的用法
- Freemarker定义宏的用法
- 宏定义#define的用法
- 关于宏定义的用法
- 宏定义中"#"的用法
- reemarker定义宏的用法
- 宏定义 # 与 ## 的用法
- C++中指针和引用的区别
- volley
- C_语法_宏定义define和函数的作用对比
- LeetCode Reverse Words in a String
- HADOOP学习连载:Hadoop2.6.0编译安装
- 一个宏定义的用法
- POJ 1837 Balance 背包dp
- 英文单词
- webapi20150123
- openGL es2.0 创建颜色球
- pyc文件
- 文件地址
- Stanford机器学习课程笔记——多变量线性回归模型
- 安卓之问卷调查