1. 程式人生 > >C/C++——static修飾符

C/C++——static修飾符

 

1. static變數

 

2. static函式

當一個源程式由多個原始檔組成時,C語言根據函式能否被其它原始檔中的函式呼叫,將函式分為內部函式和外部函式。
  內部函式(又稱靜態函式)
  如果在一個原始檔中定義的函式,只能被本檔案中的函式呼叫,而不能被同一程式其它檔案中的函式呼叫,這種函式稱為內部函式。
  定義一個內部函式,只需在函式型別前再加一個“static”關鍵字即可,如下所示:
  static 函式型別 函式名(函式引數表)
  {……}
  關鍵字“static”,譯成中文就是“靜態的”,所以內部函式又稱靜態函式。但此處“static”的含義不是指儲存方式,而是指對函式的作用域僅侷限於本檔案。
  使用內部函式的好處是:不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。
  外部函式:
  外部函式的定義:在定義函式時,如果沒有加關鍵字“static”,或冠以關鍵字“extern”,表示此函式是外部函式:
  [extern] 函式型別 函式名(函式引數表)
  {……}
  呼叫外部函式時,需要對其進行說明:
  [extern] 函式型別 函式名(引數型別表)[,函式名2(引數型別表2)……];
  [案例]外部函式應用。
  ⑴檔案mainf.c
  main()
  { extern void input(…),process(…),output(…);
  input(…); process(…); output(…);
  }
  ⑵檔案subf1.c
  ……
  extern void input(……) /*定義外部函式*/
  {……}
  ⑶檔案subf2.c
  ……
  extern void process(……) /*定義外部 函式*/
  {……}
  ⑷檔案subf3.c
  ……
  extern void output(……) /*定義外部函式*/
  {……}