定義:
什麼是定義?所謂的定義就是(編譯器)創造乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們常常說的定義名或物件名。
但注意,這個名字一旦和這塊記憶體匹配起來(可以想象是這個名字嫁給了這塊空間,沒有要彩禮啊),它們就生死與共,終生不離不棄,並且這塊內
存的位置也不能被改變。乙個變數或物件在一定區域內(如函式,全域性)只能被定義一次,如果定義多次,編譯器會提示你重複定義同乙個變數或物件。
宣告:什麼是宣告?有兩重含義,如下所述。
第一重定義:
告訴編譯器,這個名字已經匹配到一塊記憶體上了,宣告可以出現多次。
第二重定義:
告訴編譯器,這個名字我先預定了,別的地方再也不能用它來作為變數名或物件名。例如:你在圖書館放了本書佔座,表示這個位置已經有人了,別人
在也不允許使用這個作為。其實你本人並沒有坐在這個座位上。這種宣告最典型的例子就是函式引數的宣告,如:「void fun(int i, char c);"。
所以如果有**如下:
a)int i;
b) extern int i;
a是定義,b是宣告。
定義和宣告的區別
之前學習c c 的時候,都沒去注意變數的定義和宣告的具體區別,也隨意將它們放在標頭檔案,今日看c primer,才發現原來變數的定義和宣告之間的區別竟然如此之大,而且區別它們兩個竟然如此重要。變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。宣告用於向程式...
變數的定義和宣告
我們在程式設計中,時時刻刻都用到變數的定義和變數的宣告,可有些時候我們對這個概念不是很清楚,知道它是怎麼用,但卻不知是怎麼一會事,下面我就簡單的把他們的區別介紹如下 望我的指點對你受益 變數的宣告有兩種情況 1 一種是需要建立儲存空間的。例如 int a 在宣告的時候就已經建立了儲存空間。2 另一種...
定義和宣告的區別
2 變數定義和變數宣告的區別 3 物件定義和物件宣告的區別 關於宣告和定義有如下兩種特殊情況需要注意 1 宣告和定義如果變數型別不一致,將導致錯誤的解析。global.c float g f 10.0 main.c extern int g f intmain void 2 對於結構體型別如果只有宣...