天天看點

C語言與C++的函數原型(函數聲明)的差別

所謂函數原型,又稱函數聲明,就是在調用這個函數之前要先聲明一下這個函數,才能讓别的函數能夠通路到它(如果這個函數定義在調用它的代碼塊的前面則不用聲明)

C語言和C++都保留了函數聲明這一需求,在聲明時都有如下要求:

  • 傳回值類型與原函數必須相同
  • 形參表的類型與順序必須與原函數相同,但是函數原型可以不寫形參名稱,即便寫了形參名稱也可以和原函數不一樣

但是有一個很細微但是很重大的差別(以下代碼均為函數原型,不是函數):

C語言中:

int f();		// 表示可以有很多個參數
int f(void);	// 表示沒有參數
           

而在C++中,上述兩行代碼是等價的