儲存類 鏈結和記憶體管理

2021-10-01 21:32:43 字數 921 閱讀 5885

malloc

calloc

free

ansi 型別限定符

冪等作用域描述了程式中可以訪問乙個識別符號的乙個或多個區域

函式作用域

函式原型作用域

從形參定義到原型宣告結束

檔案作用域

具有檔案作用域的變數可能有外部或者內部鏈結

預設是外部函式

可以被其它檔案訪問

只能用於所定義的檔案

定義在標頭檔案中,可以重複包含

void

*malloc

(size_t size)

;傳入要分配的位元組數,返回分配的位址,失敗返回null

void

*calloc

(size_t n, size_t size)

;分配n個 大小為size的空間,並且全部初始化為0

釋放分配的空間,否則造成記憶體洩漏

定義普通變數時,該變數不能被改變

定義指標時,在*左側,則指向的值不能被改變

*右側,則指向不能被改變

通常用於硬體位址,以及在其它程式或同時執行的執行緒中共享資料

允許編譯器優化某部分的**以更好的支援計算

它只能用於指標,表明該指標是訪問資料物件的唯一方式

當乙個執行緒對乙個原子型別的物件執行原子操作時,其他執行緒不能訪問該物件

c99為型別限定符增加了冪等性,可以在一條宣告中多次使用同乙個限定符,多餘的限定符將會被忽略

const

const

const

const

int a=10;

const

int a =10;

以上是等價的

儲存類,鏈結和記憶體管理

一,儲存類 不同的儲存類提供了變數的作用域,鏈結以及儲存時期的不同組合。儲存時期,作用域,鏈結 儲存時期 變數在記憶體中保留的時間。函式原型作用域從變數定義處一直到原型宣告的末尾。這說明編譯器在處理乙個函式的引數時,它所關心的只是該引數的型別。乙個在所有函式之外定義的變數具有檔案作用域。二,鏈結 關...

儲存類 鏈結和記憶體管理

作用域 鏈結乙個 變數具有下列鏈結之一 外部鏈結 內部鏈結或空鏈結。具有 塊作用域或者函式原型作用域的變數有空鏈結,意味著它們是由其定義所在的 塊或者函式原型所私有的。具有檔案作用域的變數可能有內部或者外部鏈結。乙個具有外部鏈結的變數可以在乙個多檔案程式的任何地方使用。乙個具有內部鏈結的變數可以在乙...

C 儲存類 鏈結 記憶體管理

用於儲存程式資料的記憶體可用儲存時期 作用域 鏈結來表徵。儲存時期可以是靜態的 自動的 或是分配的。如果是靜態的,內存在程式開始執行時被分配,並在程式執行時一直存在。如果是自動的,變數所用內在程式執行到該變數定義所在 塊時才開始分配,退出 塊時釋放。如果是分配的記憶體,記憶體通過呼叫malloc 分...