宏元编程——技术——auto_rec

本文介绍了宏元编程中的auto_rec宏,该宏用于查找满足特定条件的最小序号的宏。通过实线和虚线路径进行深度探测,特别关注16以内的序号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

auto_rec宏会快速探测满足探测谓词条件的“序号”最小的宏。如果满足条件会走实线深度往下探测,当遇到不满足条件会走虚线。

下面以探测16以内的“序号”

#            define TL_NODE_16(p) TL_IF(p(16), TL_NODE_8, TL_NODE_24)
#                define TL_NODE_8(p) TL_IF(p(8), TL_NODE_4, TL_NODE_12)
#                    define TL_NODE_4(p) TL_IF(p(4), TL_NODE_2, TL_NODE_6)
#                        define TL_NODE_2(p) TL_IF(p(2), TL_NODE_1, TL_NODE_3)
#                            define TL_NODE_1(p) TL_IF(p(1), 1, 2)
#                            define TL_NODE_3(p) TL_IF(p(3), 3, 4)
#                        define TL_NODE_6(p) TL_IF(p(6), TL_NODE_5, TL_NODE_7)
#                            define TL_NODE_5(p) TL_IF(p(5), 5, 6)
#                            define TL_NODE_7(p) TL_IF(p(7), 7, 8)
#                    define TL_NODE_12(p) TL_IF(p(12), TL_NODE_10, TL_NODE_14)
#                        define TL_NODE_10(p) TL_IF(p(10), TL_NODE_9, TL_NODE_11)
#                            define TL_NODE_9(p) TL_IF(p(9), 9, 10)
#                            define TL_NODE_11(p) TL_IF(p(11), 11, 12)
#                        define TL_NODE_14(p) TL_IF(p(14), TL_NODE_13, TL_NODE_15)
#                            define TL_NODE_13(p) TL_IF(p(13), 13, 14)
#                            define TL_NODE_15(p) TL_IF(p(15), 15, 16)
上面的探测代码实际上是按照下面的图来探测。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值