我一直在學習C++一段時間,唯一不能包裝頭部的是函數原型和函數調用和函數定義的東西。我讀過各種各樣的東西,仍然不知道它的意思或做什麼。我只是想能夠理解和識別每一個。我很確定這些對於編程來說很重要,因爲我已經閱讀過了。我對函數原型有一個大概的概念,我相信它是一個聲明,可以返回某些東西的價值。函數原型混淆
Q
函數原型混淆
0
A
回答
0
讓我看看,如果我可以用一些類比
函數原型解釋 - 它就像一個廣告的產品 - 它說,有一個產品X的,你可以從位置Y.這是得到它對於你來說,作爲消費者已經足夠了,但並沒有透露有關幕後的情況,讓X對Y和你有所幫助。
同樣的,函數原型是一個聲明,只是說有一個函數somewhr被命名爲X,需要參數Y並返回值Z.足夠的任何調用者,但不能自己做任何事情。
e.g int DoSomething(int arg);
函數調用 - 這是消費者不斷在位置Y.
這是當函數的代碼實際上是打電話問了產品X。但爲了能夠調用該函數,您需要知道該函數是否存在,因此您需要(至少)該函數的原型才能在該調用之上。
e.g int a = DoSomething(1);
功能定義 - 這是製造產品X並將其輸送到位置Y.
本質上講,這是函數本身的代碼中的實際過程。
例如
int DoSomething(int arg){
return arg+2;
}
函數原型(也稱爲前向聲明)需要在C和免費函數C(其中不屬於一類函數)++
1
函數原型是獨特至C - 不用於C++。 AC函數的原型主要是相當於一個C++函數聲明,如:
int f(int);
int g(double);
它們不同的地方是,如果你不把任何東西在括號:
int f();
在C++中,該聲明f
是一個具有參數的函數。在C中,它聲明f
作爲函數而沒有指定任何關於參數。爲了得到一個C的原型,這相當於C的聲明,你需要把東西括號之間:
int f(void);
後者也允許在C++中,但最 C++程序員傾向於避免它。
函數定義就是你有頭和身體功能:
int f(int x) {
return x+4;
}
函數調用是你使用你定義一個函數:
int y = 2;
int x = f(y); // using the f() above, this is equivalent to int x = 6;
回到過去的日子裏1985年左右)C根本沒有函數原型,所以這是唯一支持的函數聲明。它通常在新代碼中被忽視。
相關問題
- 1. 原型混淆
- 2. 混淆關於函數原型和object.getPrototypeOf
- 3. JS原型函數'this'混淆
- 4. JavaScript繼承/原型混淆
- 5. 混淆原型鏈,原語和對象
- 6. Python函數混淆
- 7. OnTime函數混淆
- 8. MFC:ON_COMMAND函數混淆?
- 9. Python函數混淆
- 10. Time.sleep函數混淆
- 11. iOS:CFRunLoopRun()函數混淆
- 12. 與'原型'混淆(Firefox擴展)
- 13. Java原始類型推廣混淆
- 14. Javascript原型混淆 - 正確的方法
- 15. 混淆有關原型繼承在JavaScript
- 16. DirectX數學函數混淆
- 17. 類型混淆?
- 18. 混淆函數調用棧
- 19. 的Javascript setTimeout函數混淆
- 20. 聚合函數混淆
- 21. 構造函數混淆Java
- 22. 構造函數混淆
- 23. jQuery函數隊列混淆
- 24. PHP PDO lastInsertId()函數混淆
- 25. telnetlib read_until()函數混淆
- 26. 與sigdelset()函數混淆
- 27. 返回函數,真混淆
- 28. Dart lambda/shortland函數混淆
- 29. 混淆F#List.Fold(冪函數)
- 30. 混淆構造函數鏈
+1 no args版本對我來說是新的.. –