關於Ox O0 O1和O2 優化

2021-10-13 19:05:22 字數 453 閱讀 6399

ox(x取123)主要是對**大小的優化,我們基本不用做更多的關心。

通常各種優化都會打亂程式的結構,讓除錯工作變得無從著手。

並且會打亂執行順序,依賴記憶體操作順序的程式需要做相關處理才能確保程式的正確性。

o0: 不做任何優化,這是預設的編譯選項。

o和o1: 對程式做部分編譯優化,對於大函式,優化編譯占用稍微多的時間和相當大的記憶體。使用本項優化,編譯器會嘗試減小生成**的尺寸,以及縮短執行時間,但並不執行需要占用大量編譯時間的優化。

o2優化:能使程式的編譯效率大大提公升,從而減少程式的執行時間,達到優化的效果。

#pragma gcc optimize(1)

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")

關於0x0d與0x0a的ASCII。

今天發現乙個有趣的現象 在 ma 我用的版本是6.11 中作彙編時發現,0x0d與0x0a有著不同的作用。比如 dead for dream 在這個字串後只加上0x0d則得到 游標移到開頭的那個d下面,而沒有換行 再輸入字元的話,將原來的字元著改掉。在這個字串上只加上0x0a則得到 游標移到末尾m字...

關於檔案中的0D 0A

檔案一般分為文字檔案和二進位制檔案。如果你想乙個文字檔案中寫入乙個 n 文字檔案中會增加0x0d 0x0a兩個位元組 可以使用utraledit來檢視,記事本是看不出來的 如果你讀乙個文字檔案,一旦遇到0x0d 0x0a,遍會讀為乙個 n 0x0a 而在windows的二進位制檔案中,你寫入什麼就是...

0 關於跨平台開發

一直以來都比較關注跨平台開發,無論是gui還是cui,想跨平台都不是一件容易的事。但是,跨平台開發都是乙個難以避免的事情。沒有人可以保證10年後大家電腦裡面使用的都是什麼作業系統,或許pc已經不再是主流的都有可能,更不用說windows和linux之爭了。毋庸置疑,跨平台很多很多的好處。但是,從程式...