从227谈控制流平坦化的还原(二)
从227谈控制流平坦化的还原(二)
没有太多时间总结,大家理解一下下面三个图
while break
while continue
不管是while break还是while continue,都可以把节点想象成case num,num就对应上面的数字,每个case对应着代码块
然后在构造新节点,其实就是在构造while循环代码,怎么构造可以自己思考一下
案例:阿里还原到最后一层后的图
上图环的while代码结构
// 类似于这样把环拆掉
27329
while (6947) {
if (7585) {
if (25856) {
5891 // 一轮循环
} else {
if (14468) {
5891 // 一轮循环
} else {
if (7301) {
3362
5891 // 一轮循环
} else {
19012 // break
}
}
}
} else {
if (14468) {
5891 // 一轮循环
} else {
if (7301) {
3362
5891 // 一轮循环
} else {
19012
break
}
}
}
}
15397
结束
感谢learningx大佬
本文是原创文章,采用 CC 4.0 协议,完整转载请注明来自 http://www.1997.pro/
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果