c語言中的static和c 中的static比較

2021-08-01 00:12:37 字數 710 閱讀 5368

c語言中:

static如果是修飾的全域性變數表示,該變數不能被其他檔案使用,函式也是一樣.如果修飾區域性變數,那麼,該變數存放在靜態區,只能被初始化一次,生命週期隨之檔案的結束而結束.

c++中:

static修飾的變數,只能在類外初始化,而且,必須初始化,可以由類直接訪問,可以在同族類中實現資料共享,在類中沒有儲存空間

class school

public:

string tower;

string lake;

static string lib;

};school::lib("weifang");

int main(int argc, char *argv) {

school a, b;

cout<

不要因為c和c++有一些語法或者關鍵字看上去相同,就認為他們的意義和作用是一樣的.

順便提一下volatile變數,防止編譯器優化,很多人只是知道這句話,卻不知道實際意思,我說一下我的理解,就是告訴編譯器,被volatile修飾的變數,以後再用時,不要從暫存器或者cache中獲取拷貝,而是直接從變數位址處獲取變數值,還有和extern 一起用, extern volatile,volatile告訴編譯器,我這個值可能會隨時在其他檔案發生修改,不要從快取區取值.

先寫這麼多吧,以後有了新的認識再新增,

希望大家有什麼意見的或者我寫的不對的即使提出或者幫我糾正,謝謝

C 語言中的static

static 在c語言中,關鍵字 static 有三個明顯的作用 1 在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地的全域性變數。3 在模組內,乙個被宣告為靜態的...

c語言中的static

1 用static宣告區域性變數 用關鍵字static宣告區域性變數為 靜態區域性變數 時,可以讓該區域性變數在函式呼叫結束後不消失而保留原值,即其占用的儲存單元不釋放。static int a 1 2 用static宣告外部變數 有時在程式設計中,希望某些外部變數只限於被本檔案引用,而不能被其他檔...

C語言中的static

c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心將此段初始化為0。5 堆 動態儲存...