C++中的聲明與定義

聲明和定義是完全不同的概念,聲明是告訴編譯器“這個函數或者變量可以在哪找到,它的模樣像什麼”。而定義則是告訴編譯器,“在這裏建立變量或函數”,並且爲它們分配內存空間。

  函數聲明與定義:

  函數的聲明如: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的聲明,那麼這裏既是對它的聲明也是對它的定義,編譯器會爲其分配對應的內存。

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