您好,登錄后才能下訂單哦!
藍鷗iOS培訓講師推薦:技術(shù)天下,掌握一門過硬的技術(shù)成為如今最強有力的資本,走到哪都能吃得開,那么iOS開發(fā)是如今最流行的行業(yè)之一,也是同學追求的目標!
一個函數(shù)一般由兩部分組成:聲明部分和執(zhí)行語句
聲明部分的作用是對有關的標識符(如變量,函數(shù),結(jié)構(gòu)體,共用體等)的屬性進行說明,對于函數(shù),聲明和定義的區(qū)別是明顯的,前邊已說明,函數(shù)的聲明是函數(shù)的原型,而函數(shù)的定義是函數(shù)功能的確立,對函數(shù)的聲明是可以放在聲明部分中的,而函數(shù)的定義顯然不在函數(shù)的聲明部分范圍內(nèi),它是一個文件中的獨立模塊。
對變量而言,聲明與定義的關系稍微復雜一些,在聲明部分出現(xiàn)的變量有兩種情況:一種是需要建立存儲空間的(如int a; );另一種是不需要建立存儲空間的(如extern int a;),前者稱為定義性聲明(defining declaration),或簡稱為定義(definition),后者稱為引用性聲明(referenceing declaration),廣義地說,聲明包括定義,但并非所有的聲明都是定義,對“int a;” 而言,它是定義性聲明,既可說是聲明,又可說是定義,而對“extern int a;” 而言,它是聲明而不是定義,一般為了敘述方便,把建立存儲空間的聲明稱為定義,而把不需要建立存儲空間的聲明稱為聲明,顯然這里指的聲明是狹義的,即非定義性聲明,例如:
int main( )
{
extern int a;//這是聲明不是定義,聲明a是一個已定義的外部變量
…
}
int a;//是定義,定義a為整型外部變量
外部變量定義和外部變量聲明的含義是不一樣的,外部變量的定義只能有一次,它的位置在所有函數(shù)之外,而同一文件中的外部變量的聲明可以有多次,它的位置可以在函數(shù)之內(nèi),也可以在函數(shù)之外,系統(tǒng)根據(jù)外部變量的定義分配存儲單元,對外部變量的初始化只能在定義時進行,而不能在聲明中進行,所謂聲明,其作用是向編譯系統(tǒng)發(fā)出一個信息,聲明該變量是一個在后面定義的外部變量,僅僅是為了提前引用該變量而作的聲明,extern只用作聲明,而不用于定義。
用static來聲明一個變量的作用有二: (1)對局部變量用static聲明,使該變量在本函數(shù)調(diào)用結(jié)束后不釋放,整個程序執(zhí)行期間始終存在,使其存儲期為程序的全過程,(2)全局變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。
不過大家一定要注意:用auto,register,static聲明變量的時候,是在定義變量的基礎上加上前面的關鍵字,不能單獨用,應該寫成這樣的形式“static int a;”
本章小結(jié):這樣一來,大家就能夠掌握關于C++變量的聲明和定義的相關內(nèi)容,及其用法,如有不懂得地方可相互溝通!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。