您的位置:首页 > 编程语言

宏元编程——算数计算——INC,DEC

2016-03-04 17:40 211 查看
实现思路:宏展开无法在预编译期完成“真正”的算数计算,但是我们可以定义一张静态表,例如:遇到INC(5)就替换成 6,遇到DEC(8)就替换成7。

TL_INC实现:

#include "tl/cat.h"

#define TL_INC(n) TL_CAT(TL_INC_,n)

#define TL_INC_0 1
#define TL_INC_1 2
#define TL_INC_2 3
#define TL_INC_3 4
#define TL_INC_4 5
#define TL_INC_5 6
#define TL_INC_6 7
#define TL_INC_7 8
#define TL_INC_8 9
#define TL_INC_9 10
#define TL_INC_10 11
#define TL_INC_11 12
#define TL_INC_12 13
#define TL_INC_13 14
#define TL_INC_14 15
#define TL_INC_15 16
#define TL_INC_16 17
#define TL_INC_17 18
#define TL_INC_18 19
#define TL_INC_19 20
#define TL_INC_20 21
#define TL_INC_21 22


TL_DEC实现:

#include "tl/cat.h"

#define TL_DEC(n) TL_CAT(TL_DEC_,n)

#define TL_DEC_1 0
#define TL_DEC_2 1
#define TL_DEC_3 2
#define TL_DEC_4 3
#define TL_DEC_5 4
#define TL_DEC_6 5
#define TL_DEC_7 6
#define TL_DEC_8 7
#define TL_DEC_9 8
#define TL_DEC_10 9
#define TL_DEC_11 10
#define TL_DEC_12 11


测试结果:

TL_INC(9)  =>10
TL_DEC(9) =>8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: