ฟังก์ชันเป็นเหมือนเครื่องจักรเนื่องจากมีฟังก์ชันบางอย่างและให้ผลลัพธ์บางอย่าง เช่นเดียวกับที่เครื่องรับอินพุต กระบวนการที่อินพุตและสร้างเอาต์พุตในลักษณะเดียวกัน ฟังก์ชันรับค่าบางส่วน ดำเนินการกับค่าเหล่านั้น และสร้างเอาต์พุต บุคคลส่งผ่านอินพุตไปยังเครื่องด้วยตนเอง จากนั้นมีเพียงเครื่องเท่านั้นที่จะเริ่มทำงานในลักษณะเดียวกันเมื่อโปรแกรมเมอร์เรียกใช้ฟังก์ชันที่เครื่องจะเริ่มดำเนินการ
ฟังก์ชันอาจแตกต่างกันในชื่อในภาษาต่างๆ แต่มีลักษณะทั่วไปสองประการเช่น −
-
ประกอบด้วยลำดับของคำสั่งที่ต้องดำเนินการ
-
คำแนะนำเหล่านั้นถูกระบุด้วยชื่อซึ่งหมายถึงฟังก์ชัน
เหตุใดจึงใช้ฟังก์ชันต่างๆ
-
นำกลับมาใช้ใหม่ได้ เมื่อต้องใช้ฟังก์ชันเดียวกันในหลาย ๆ ที่ วิธีที่ดีที่สุดคือการสร้างฟังก์ชันหนึ่งครั้งและเรียกใช้หลายครั้งแทนที่จะประกาศฟังก์ชันที่มีฟังก์ชันเดียวกันซ้ำแล้วซ้ำอีก การนำกลับมาใช้ใหม่ได้ถือเป็นคุณสมบัติหรือข้อได้เปรียบที่ใหญ่ที่สุดของฟังก์ชัน
-
Modularity ของโค้ด − ฟังก์ชันนี้ทำให้การเข้ารหัสของคุณเรียบร้อยและสะอาด แทนที่จะเขียนโค้ดหลายบรรทัดในฟังก์ชัน main() ให้ประกาศฟังก์ชันเพื่อให้อ่านและเขียนโค้ดได้ชัดเจนและง่ายขึ้น
-
ปรับเปลี่ยนได้ง่าย − หากมีการเปลี่ยนแปลงโค้ดในอนาคต แทนที่จะเปลี่ยนเป็นหลายๆ ที่ โปรแกรมเมอร์จะทำการเปลี่ยนแปลงในฟังก์ชันเท่านั้น ดังนั้น เราสามารถพูดได้ว่าฟังก์ชันนี้ยังลดความซ้ำซ้อนในข้อมูลอีกด้วย
-
ให้สิ่งที่เป็นนามธรรม - ด้วยชื่อฟังก์ชันที่เกี่ยวข้อง จึงสามารถระบุได้ว่าฟังก์ชันนั้นควรจะทำอะไร แทนที่จะเปิดเผยว่าฟังก์ชันนั้นทำอย่างไร ตัวอย่างเช่น ใน C เรามีไฟล์ส่วนหัว "maths.h" ที่มีหลายฟังก์ชันรวมถึงฟังก์ชัน pow() เราสามารถใช้ฟังก์ชันนี้โดยตรงในการคำนวณค่ากำลัง แทนที่จะรู้ว่าฟังก์ชันนี้คำนวณอย่างไรในคำจำกัดความ
การประกาศและคำจำกัดความของฟังก์ชัน
การประกาศฟังก์ชันเป็นกระบวนการบอกคอมไพเลอร์ถึงประเภทการส่งคืนและชื่อของฟังก์ชัน
ไวยากรณ์
ไม่มีร่างกาย
Return_type function_name(parameter list which is optional);
ด้วยร่างกาย
Return_type function_name(parameter list which is optional) { //body of the function }
คำอธิบาย
-
return_type − มันบอกคอมไพเลอร์ว่าฟังก์ชันจะส่งคืนสิ่งใดหรือไม่ และหากส่งคืนข้อมูลใด ๆ มันก็จะส่งคืนข้อมูลประเภทใด
void dummy(){ //since the return type of function is void it willn’t return anything to the caller and hence it willn’t contain return statement. } Int dummy(){ //since the return type of function is int it will return integer value to the caller and it is mandatory that it will contain return statement as it is returning integer value. return integer_value; } float dummy(){ //since the return type of function is float it will return floating value to the caller and it is mandatory that it will contain return statement as it is returning floating value. return float_value; }
-
ชื่อฟังก์ชัน − ชื่อฟังก์ชันสามารถเป็นชื่อที่โปรแกรมเมอร์ต้องการมอบให้กับฟังก์ชันได้ เช่นเดียวกับในตัวอย่างข้างต้น เราได้ตั้งชื่อฟังก์ชันว่า dummy
-
รายการพารามิเตอร์ (ไม่บังคับ) − เมื่อใดก็ตามที่ฟังก์ชันทำงานตามค่าที่ส่งผ่านโดยผู้เรียกใช้ฟังก์ชัน เราจำเป็นต้องสร้างพารามิเตอร์
คำจำกัดความของฟังก์ชัน มีฟังก์ชันที่ฟังก์ชันควรจะทำทุกครั้งที่มีการเรียกใช้
ตัวอย่าง
#include<iostream> using namespace std; //function that calculates the greatest //value amongst two parameters int greatest(int val_1, int val_2) //return type of function is integer value{ //body of the function(Definition) if(val_1>val_2){ return val_1; } else{ return val_2; } } int main(){ int val_1=10, val_2=20; //calling the function and storing the integer value //returned by a function in the integer variable int highest = greatest(val_1,val_2); //printing the greatest value cout<<"The greatest value is : "<<highest; //as the return type of main is int, //it must have return statement for the compiler return 0; }
ผลลัพธ์
ผลลัพธ์ของโค้ดด้านบนจะเป็น −
The greatest value is : 20
พารามิเตอร์ของฟังก์ชัน
-
พารามิเตอร์เป็นทางเลือก หากไม่มีพารามิเตอร์ ฟังก์ชันก็จะทำงานด้วย
-
ตัวแปรที่ประกาศในนิยามฟังก์ชันเพื่อจับค่าที่ส่งผ่านโดยผู้เรียกใช้ฟังก์ชันเรียกว่าพารามิเตอร์ int ยิ่งใหญ่ที่สุด(int val_1, int val_2)
int greatest(int val_1, int val_2)
-
ตัวแปรที่ส่งผ่านโดยผู้เรียกใช้ฟังก์ชันเรียกว่าอาร์กิวเมนต์
int highest = greatest(val_1,val_2);
-
พารามิเตอร์จริงเทียบกับพารามิเตอร์ที่เป็นทางการ -
พารามิเตอร์จริง คือข้อมูลที่ส่งไปยังฟังก์ชันดังตัวอย่างด้านบน 10 และ 20 เป็นพารามิเตอร์จริง
พารามิเตอร์ที่เป็นทางการ คือข้อมูลที่ได้รับจากฟังก์ชันดังตัวอย่างด้านบน val_1 และ val_2 เป็นพารามิเตอร์ที่เป็นทางการ
ประเด็นสำคัญเกี่ยวกับฟังก์ชัน main()
-
ทุกโปรแกรมมีจุดเริ่มต้นจากจุดเริ่มต้นของการดำเนินการ เช่นใน C และ C++ เรามีฟังก์ชัน main()
-
หากประเภทการส่งคืนฟังก์ชัน main() เป็นโมฆะ แสดงว่าฟังก์ชันไม่ได้ส่งคืนสิ่งใดไปยังคอมไพเลอร์ ในขณะที่หากฟังก์ชัน main() มีประเภทการส่งคืนเป็น int ฟังก์ชันจะคืนค่ากลับไปยังคอมไพเลอร์ เช่น เรามี “return 0” ใน main() ซึ่งหมายถึงการสิ้นสุดโปรแกรม
-
ใน C - ประเภทการส่งคืนของฟังก์ชัน main() สามารถเป็นโมฆะและ int ได้เท่านั้นเนื่องจากฟังก์ชัน main() สามารถคืนค่าจำนวนเต็มไปยังคอมไพเลอร์หรือไม่ควรส่งคืนสิ่งใด
-
ใน C ++ - ประเภทการส่งคืนของฟังก์ชัน main() สามารถเป็น int ได้เท่านั้นเนื่องจากฟังก์ชัน main() ส่งคืนค่าจำนวนเต็มไปยังคอมไพเลอร์