Linux C 程序設計大全 - C 語言中的函數

函數本質:一段二進制可執行代碼,函數名是一個標號,等於內存中存儲函數代碼的內存空間的首地址。

函數調用:first 將參數壓入棧幀  second 需要保存寄存器的值 third 保存返回地址 

fourth 造成跳轉

變量存儲優化:全局變量存儲在內存中,局部變量存儲在棧上。

變量的存儲類別: auto:自動變量,若忽略變量存儲類別,編譯器自動認爲爲auto類型。
                             register:寄存器變量,此類別的變量會被優先分配寄存器。通常循環因子被分配寄存器。
                             extern:外部變量,即全局變量,不會因爲棧幀的消失而消失。存儲在內存的數據段上。只是讓他
                                          文件中的程序可以引用改變量。不改變生命週期。
                             static:靜態變量,存儲在數據段上。靜態全部變量的作用域——僅限於該文件,靜態局部變量的做作                                          用域———定義所在的符合語句內。

                            static的經典作用:1 改變變量的生命期   2 實現封裝和模塊化設計(list.h操作函數的接口聲明)

 鏈接:使程序的模塊化更強,代碼更易於分類管理。 
  定義and聲明:int a;//聲明,告知編譯器該變量的存在,不分配存儲空間
                         int b=1;//定義
                          符號解析規則
                         *不允許有多個符號的定義,這裏的符號指的是變量或者函數。
                         *如果有一個符號定義和多個符號聲明,則選擇被定義的符號。
                         *如果有多個符號的聲明,則從其中任選一個作爲符號的定義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章