在聲明中C++函數原型是有以下的差異:C++函數原型A 和變量名對戰數據類型只有
void SomeFunction(int Argument)
{
//Stuff
}
對戰
void SomeFunction(int)
{
//Stuff
}
本質上我是什麼問,爲什麼你要在函數的原型中寫一個變量參數名,而不僅僅是數據類型?
在聲明中C++函數原型是有以下的差異:C++函數原型A 和變量名對戰數據類型只有
void SomeFunction(int Argument)
{
//Stuff
}
對戰
void SomeFunction(int)
{
//Stuff
}
本質上我是什麼問,爲什麼你要在函數的原型中寫一個變量參數名,而不僅僅是數據類型?
您不必在定義中寫入參數名稱,也不必在聲明中寫入參數名稱。如果你這樣做,他們甚至不需要一樣。如果你打算實際使用這個參數,你必須寫一個。
如果您實際要使用參數,則需要參數名稱。一些編譯器(例如Microsoft VC++)會給你一個警告,如果你命名了一個參數,但不在函數的任何地方使用它。
P.S.您在示例中使用的不是原型,而是實際的函數定義。在原型中,參數名稱純粹是可選的。
函數聲明中的編譯器不需要參數名稱。這是供人食用的。他們提供了關於該功能在做什麼的附加信息。良好的函數名稱以及良好的參數名稱可作爲您的方法的即時文檔。
有關「聲明」和「定義」的區別的額外評論。 你的例子都是定義:
void SomeFunction(int Argument)
{
//Stuff
}
原型將是一個declararation和是這樣的:
void SomeFunction(int) ;
所以,你可以在你的頭有一個聲明,像上面。然後在你的CPP你這樣定義函數:
void SomeFunction(int Argument)
{
Argument = Argument + 1;
}
正如你所看到的聲明沒有指定參數名稱,但隨後的定義不指定它並使用它。