還不快點登入,你們這些看小說都不登入就離開的。
登入可以幫助你收藏跟紀錄愛書,大叔的心血要多來支持。
不然管理員會難過。
《程序媛養成計劃》第42章 隱身和顯形
  聽到「隱身術」三個字,我和小弦子眼裡瞬間就開始放光,就連旁聽的六叔叔注意力都集中了幾分。

  就在我們都靜等老爹下文的時候,老爹卻偏偏不著急講了,又是喝水,又是擦眼鏡什麽的,一幅不慌不忙的樣子,恨得我牙根兒都癢癢。

  吊足了我們的胃口後,老爹這才回到自己的電腦旁邊徐徐說道:「一直以來,因為我們的程序功能比較簡單,所以程序裡面就只有一個.c文件,但是隨著我們的程序越來越複雜,如果還把所有代碼都放在一個.c文件中就顯得特別臃腫,不方便閱讀。

  其實推箱子這個程序已經暴露出來這個問題了,有時候我們需要查看某行代碼的時候,往往要翻閱很久。

  於是乎我們就要對程序的功能進行分塊,各個塊完成相應的一些小功能。最後把小功能組合在一起,就完成了一個大的功能了。

  為了方便管理和閱讀,一般我們就會按塊來創建.c文件,也就是說,程序中可能會存在多個.c文件。

  在默認情況下,我們定義在一個.c文件的全局變量毫無秘密可言,因為其他的.c文件可以通過一個關鍵字——external讓它顯出真身,然後就可以肆無忌憚地把它的臉按在地板上摩擦。

  比如說我們在zhangsan.c文件裡聲明了一個全局變量:

  int heart = 10;

  然後還有一個lisi.c文件,它想看看zhangsan.c中的heart是什麽,於是它就在自己聲明全局變量的地方寫了這麽一句:

  external int heart;

  這個時候在lisi.c中就能對zhangsan.c中的heart為所欲為了。

  那這樣會不會有什麽問題麽?」

  老爹拋出了他的疑問。我和小弦子對視了一眼,相互搖了搖頭。

  問題肯定是有的嘛,不然老爹怎麽可能會無的放矢,跟我們扯這麽多有的沒的。

  「既然你們想不到,那我就給你們設置個場景。

  假設我們把一個.c文件比作是一個人,那麽.c文件中的變量就是我們身體的器官。像手啊,腳啊,這種類型的器官暴露在外面倒是沒什麽,甚至讓人摸兩下也沒什麽大問題。

  可是像我們的心臟這類器官能夠暴露在外面麽?哪天隨便來個人跟我們說,讓我們把心臟給Ta看看,摸兩下,你說這讓不讓人害怕?

  所以基於安全等各方面的因素,心臟這類的器官必須藏起來,不能雖然讓人觸碰。

  人生在世,誰還沒有點小秘密了?.c文件也是一樣的啊,總得有點自己隱私吧?

  所以說啊,如果我們讓一個全局變量只能在當前.c文件,也就是聲明這個變量的.c文件中能夠使用,就用static關鍵字修飾它。一旦一個全局變量被static關鍵字修飾,那麽其它的.c文件就不能在使用external關鍵字獲取了。

  換句話說,被static修飾的全局變量就在其它.c文件面前消失了,這個就是static的隱身功能。

  有一點要注意啊,剛剛說的內容都是針對的全局變量,如果是局部變量根本就不存在這個問題。」

  我和小弦子若有所得,就連旁聽的六叔叔居然都露出一副「原來如此」的表情。

  「static除了能夠修飾全局變量,

還可以修飾函數哦。同樣的道理,如果一個函數被static修飾了,那麽這個函數也就只能在定義它的.c文件中使用了。  對於函數而言,如果要在其它的.c文件中調用它就不能靠external關鍵字了,而是要靠頭文件,也就是.h文件。

  還記得我們每一個程序都要寫的#include
鍵盤左右鍵 ← → 可以切換章節
章節問題回報:
翻譯有問題
章節內容不符
章節內容空白
章節內容殘缺
上下章節連動錯誤
小說很久沒更新了
章節顯示『本章節內容更新中』
其他訊息