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

实现思路:宏展开无法在预编译期完成“真正”的算数计算,但是我们可以定义一张静态表,例如:遇到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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值