宣告和定義是完全不同的概念,宣告是告訴編譯器「這個函式或者變數可以在哪找到,它的模樣像什麼」。而定義則是告訴編譯器,「在這裡建立變數或函式」,並且為它們分配記憶體空間。
函式宣告與定義:
函式的宣告如:int add(int, int);函式宣告就是給函式取名並指定函式的引數型別,返回值型別。
函式的定義如:int add(int a, int b){} 函式定義看起來跟函式宣告很像,但是它有函式體,如果函式體中使用了引數,就必須為引數命名,這裡大括號代替了分號的作用。
變數的宣告如:extern int i; 在變數定義前加extern關鍵字表示宣告乙個變數但不定義它,這對函式同樣有效,如:extern int add(int a, int b);因為沒有函式體,編譯器必會把它視作宣告而不是定義,extern關鍵字對於函式來說是多餘的,可選的。
變數的定義如:int i;如果在此之前沒有對i的宣告,那麼這裡既是對它的宣告也是對它的定義,編譯器會為其分配對應的記憶體。
C 中宣告與定義的區別
宣告 一種把乙個名稱引入或者重新引入到某個c 作用域的構造。定義 它也是一種宣告,但該宣告必須給出被宣告實體的細節。對於變數而言,這裡的細節是指 為被宣告實體保留儲存空間。對於class型別和函式定義而言,指的是包含有一隊花括號內容的宣告。對於外部變數而言,指的是前面沒有關鍵字extern或者在宣告...
C 中定義與宣告的區別
c 中的定義與宣告是兩個很容易混淆的概念,而且對於初學者來說,必須要區分兩個概念的不同。乙個變數的定義是用於為變數分配儲存空間。也可以為變數指定初始值。也就是說,定義不一定要有初始值,但是一定要分配儲存空間。而乙個變數的宣告則是說明乙個變數的型別以及名字。定義也是宣告,讀者可以這樣想,如果乙個變數要...
區分c 中的宣告與定義
c 編碼過程中,我們經常談及 定義 和 宣告 二者是程式設計過程中的基本概念。我們需要使用乙個變數 型別 類 結構體 列舉 共用體 或者函式時,我們需要提前定義和宣告。定義和宣告的過程,就像我們向圖書館借閱書籍一般,需要先完成書籍的印刷,即創造出書籍,這是乙個定義的過程,有了書籍,我們需要到圖書館完...