static 和 extern水火不容。

用static聲明局部變量,使其變爲靜態存儲方式,作用域不變;用static聲明外部變量,其本身就是靜態變量,這隻會改變其連接方式,使其只在本文件內部有效,而其他文件不可連接或引用該變量。
  
  static作用於函數:e.g.: static void func(void);
  使用static用於函數定義時,對函數的連接方式產生影響,使得函數只在本文件內部有效,對其他文件是不可見的。這樣的函數又叫作靜態函數。使用靜態函數的好處是,不用擔心與其他文件的同名函數產生干擾,另外也是對函數本身的一種保護機制。
  

  如果想要其他文件可以引用本地函數,則要在函數定義時使用關鍵字extern,表示該函數是外部函數,可供其他文件調用。另外在要引用別的文件中定義的外部函數的文件中,使用extern聲明要用的外部函數即可。


static 和 extern水火不容?


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