分支宏定义
#define TL_IF(condition,t,f) if-body
condition为1,if-body宏展开成t
condition为0,if-body宏展开成f
定义两个辅助宏
#define TL_IF_1(1,t,f) t
#define TL_IF_0(1,t,f) f
实现分支的思路就是想法根据conditon来把if(condition,t,f)映射成TL_IF_1或者TL_IF_0
生成新的宏名称,并且继续展开可以通过##来实现,可以参考宏元编程
#define TL_CAT(p1,p2) TL_CAT1(p1,p2)
#define TL_CAT1(p1,p2) p1##p2
#define TL_IF(c,t,f) TL_CAT(TL_IF_,c)(t,f)
#define TL_IF_1(t,f) t
#define TL_IF_0(t,f) f
再优化下,我们希望condition在[1,256]区间里,if表达式的值都为t
可以通过定义个TL_BOOL函数把[1,256]区间的值都映射为1
#define TL_BOOL(n) TL_CAT(TL_BOOL_,n)
//
#define TL_BOOL_0 0
//
#define TL_BOOL_1 1
#define TL_BOOL_2 1
#define TL_BOOL_3 1
#define TL_BOOL_4 1
#defi