1) 所有全局變量全部以g_開頭,並且儘可能聲明成static類型.
2) 儘量杜絕跨文件訪問全局變量.如果的確需要在多個文件內訪問同一變量,應該由該變量定義所在文件內提供GET/PUT函數實現.
3) 全局變量必須要有一個初始值,全局變量儘量放在一個專門的函數內初始化.
4) 如調用的函數少於三個,請考慮改爲局部變量實現.
存儲類說明符:
Auto:只在塊內變量聲明中被允許, 表示變量具有本地生存期.
Extern:出現在頂層或塊的外部變量函數與變量聲明中,表示聲明的對象具有靜態生存期, 連接程序知道其 名字.
Static:可以放在函數與變量聲明中,在函數定義時,只用於指定函數名,而不將函數導出到鏈接程序,在函數聲明中,表示其後邊會有定義聲明的函數,存儲類型static.在數據聲明中,總是表示定義的聲明不導出到連接程序.
1、函數
C語言中一個人爲的規範:在.h文件中聲明的函數,如果在其對應的.c文件中有定義,那麼我們在聲明這個函數時,不使用extern修飾符, 如果反之(在其.c中沒定義),則必須顯示使用extern修飾符.
所以在C語言的.h文件中,我們會看到兩種類型的函數聲明. 帶extern的,還不帶extern的, 簡單明瞭,一個是引用外部函數,一個是自己聲明並定義的函數.