C++ 從基礎到精通 — 第 4 講
什麼是函數?第2集
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
在這篇文章中,我們將詳細了解如何使用基本功能。
#include <iostream>
void function1(){
std::cout << "function1!" << std::endl;
}
int main(){
function1();
function2();
return 0;
}
void function2(){
std::cout << "function2!" << std::endl;
}
該程式碼無法編譯。 它可能會因編譯器而異,但是 main.cpp:9:5: error: ‘function2’ was not declared in this scope; 您可以看到出現錯誤。
在我們眼裡function2已經聲明了,為什麼計算機不知道? C語言和大多數程式語言都是從頂部讀取程式碼。 換句話說,程式碼將這些命令傳送給電腦。
讀取 function1 的聲明並在記憶體中建立 function1。 執行main函數,執行function1和function2。 讀取 function2 的聲明並在記憶體中建立 function2。 (稍後我們將了解名稱查找失敗。)
即使是人類讀起來也不覺得奇怪嗎?
嘗試在聲明 function2 之前在 main 中執行它會導致編譯錯誤。
#include <iostream>
void function1(){
std::cout << "function1!" << std::endl;
}
void function2(){
std::cout << "function2!" << std::endl;
}
int main(){
function1();
function2();
return 0;
}
因此,預計該程式碼不會導致錯誤。
或者,在主函數上方寫一個聲明,提前告訴編譯器該函數的類型, 包含實際操作的實作可以寫在main函數下。
#include <iostream>
void function1();
void function2();
int main(){
function1();
function2();
return 0;
}
void function1(){
std::cout << "function1!" << std::endl;
}
void function2(){
std::cout << "function2!" << std::endl;
}