今天的收穫

2021-09-30 07:40:44 字數 1183 閱讀 4899

constant   folding,   一種編譯優化技術。例如:2+2   應該在編譯是就處理為4 

比如你有以下**。 

const   double     pi   =   3;141592653589793; 

const   double   d   =   10.0; 

const   double   c   =   d/2*pi; 

在編譯時如果使用到c就用計算的結果來代替,這就是「常量摺疊」 

heap           | 

--------------- 

stack         | 

--------------- 

const   |(字串常量通常放在data-const區中) 

data--common| 

data     | 

--------------- 

code           | 

--------------- 

a   靜態資料區:內存在程式啟動的時候才被分配,而且可能直到程式開始執行的時候才被初始化,如函式中的靜態變數就是在程式第一次執行到定義該變數的**時才被初始化。所分配的內存在程式的整個執行期間都存在,如全域性變數,static變數等。 

注意:初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數與靜態變數在相鄰的另一塊區域,同時未被初始化的物件儲存區可以通過void*來訪問和操縱,程式結束後由系統自行釋放。 

b   **區:存放函式體的二進位制**; 

c   棧區:存放自動變數。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元由編譯器自動釋放,超出其作用域外的操作沒有定義。棧記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。棧存放函式的引數值,區域性變數的值等。 

d   堆區(自由儲存區):在執行的時候呼叫程式(如c中的malloc或c++中的new)分配記憶體,可以在任何時候決定分配記憶體及分配的大小,使用者自己負責在何時釋放記憶體(如用free或delete)。堆中的所有東西都是匿名的,這樣不能按名字訪問,而只能通過指標訪問。 

函式指標指向code區,是程式執行的指令**,資料指標指向data,heap,stack區,是程式依賴以執行的各種資料 

在檔案作用域宣告inline函式預設為static儲存型別,const常量預設為static儲存,如果加上extern,則為外部儲存型別。 

今天的收穫

學習了幾個月的前端,我想以後自己把收穫到的分享出來。這是回憶,記錄著我的成長 這是成果,記錄著我的所得,如果能對大家有所幫助,也是我的幸運。今天說一下我剛知道的乙個css background attachment 它配合著background image使用,一般背景圖是按著它所在的div等相同的...

今天的收穫

今天學習了using sqlconnectioncnn new.使用這個方法可以不用使用 dispopse 釋放資源 也可以不用關閉連線 ado.nettransaction 的使用包括以下幾個步驟 1.建立資料庫聯接.2.依據資料庫聯接建立事務 3.執行語句 4.提交或回滾事物 sqltransa...

Linux今天收穫

今天研究linux的磁碟管理 vmware掛上硬碟,格式化成fat32 ntfs。學習在linux下面掛載。fat32 是比較簡單了,直接用 mount 就搞定了。ntfs 就掛不上,需要裝核心支援。一邊看英格蘭vs巴拉圭,一邊查資料。看了許多相關資料,好多都不怎麼明白。看資料上面是用 yum 命令...