2011-05-01 135 views
1

我看清條款「聲明」,「原型」和「互換了大量拋向四周象徵」,當涉及到如下代碼:宣言與原型與符號與定義與實現

void MyUndefinedFunction(); 

這同樣適用於「定義」和「執行」這樣的事情:「參數」

void MyClass::MyMethod() 
{ 
    // Actual code here. 
} 

是否有條款有任何區別,與「論據」和或者他們真的是同義詞?

注意:我不確定這是否屬於此處或程序員,所以我0123:如果有人有任何異議,讓我知道,我會刪除一個。

回答

1

除非你碰上一個純粹,它們通常是可互換的,除了符號和原型(很難給上淨油)

  • 符號一般指的是鉤點用於連接的代碼2位如庫入口點或解析靜態鏈接的目標
  • 原型通常指的是函數/方法的外觀(參數,返回類型,名稱,各種類型的可見性)的定義,但不包含實現上。

你錯過了功能與方法,但我的定義是:

  • 功能未綁定到一個對象
  • 方法的調用位的代碼調用位代碼在對象的名字空間中。通常由編譯器實現爲一個將對象實例作爲第一個參數的函數。

可能的參數提示限制範圍,因此是隻讀的。

注意如果你問一個純粹主義者,你更可能有一個參數參數

1

聲明和原型之間的差主要是在C,其中下面是一個非原型聲明:

int foo(); 

注意,這是不同於:

int foo(void); 

後者是一個一個沒有參數的函數的原型,而前者是一個函數的聲明,其參數類型不在聲明中指定。這對於避免函數指針類型的函數指針類型轉換實際上很有用,但是很容易搞砸,並且搞亂了未定義的行爲。許多C程序員認爲非原型聲​​明是有害的,gcc有一個警告選項來標記它們。