最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
梅河口市| 桑植县| 青海省| 黎城县| 新安县| 镇安县| 丰镇市| 营口市| 新沂市| 舟山市| 建宁县| 孝昌县| 云阳县| 上林县| 兴文县| 罗定市| 通城县| 新余市| 济宁市| 濮阳市| 青州市| 双城市| 上虞市| 依兰县| 渭南市| 宣恩县| 无棣县| 和平县| 烟台市| 阜城县| 洛隆县| 新乡市| 通辽市| 墨脱县| 鄄城县| 福建省| 德令哈市| 沁阳市| 教育| 武陟县| 淮安市|