国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C++程序反編譯筆記(3)代碼重構(gòu)

2022-10-20 21:13 作者:GC_CH  | 我要投稿

????代碼重構(gòu)就是將混亂難懂的代碼通過等價代換的方式變成簡單易懂的代碼的過程。

????好的代碼應(yīng)該是順序清晰,變量節(jié)約,層次較淺的。

????所謂順序清晰,就是執(zhí)行順序一眼就能看得明白,不會胡亂地跳轉(zhuǎn),因此,在代碼重構(gòu)的過程中應(yīng)該盡量去掉goto語句和對longjmp函數(shù)的調(diào)用。goto語句可以轉(zhuǎn)為if,while,for,switch,break,continue等跳轉(zhuǎn)位置清晰的語句。而longjmp則可以通過拆分,增加函數(shù)來去掉。

????所謂變量節(jié)約,就是使用較少的變量,越多的變量越難讓人記住全部變量的含義。由于高級語言編譯為機器語言的時候,會經(jīng)常使用寄存器,因此,反編譯后的代碼會出現(xiàn)非常多的中間(臨時)變量,合并這些中間變量可以極大地降低代碼量。

????所謂層次較淺,就是大括號嵌套層次越低越好,大括號的特性就是不容易看情況哪個{和哪個}匹配,即使是python這樣的不使用大括號表示塊的語言,也很難分清哪個塊在哪結(jié)束。降低大括號層次的方法通常是將條件取反,比如if(a){...} return; 改成if(!a)return; ...return;

C++程序反編譯筆記(3)代碼重構(gòu)的評論 (共 條)

分享到微博請遵守國家法律
宝鸡市| 遂溪县| 河津市| 曲松县| 元阳县| 通渭县| 屏南县| 安义县| 宝鸡市| 沁水县| 常德市| 灵武市| 喀喇沁旗| 楚雄市| 宝应县| 保山市| 虎林市| 淮滨县| 绥德县| 清河县| 余庆县| 尖扎县| 乌兰察布市| 乌拉特前旗| 宜君县| 曲沃县| 阜康市| 新巴尔虎左旗| 仲巴县| 临汾市| 许昌县| 中江县| 融水| 中阳县| 兰州市| 锡林郭勒盟| 都匀市| 宁强县| 乌什县| 固阳县| 吐鲁番市|