ฟังก์ชันคือกลุ่มของคำสั่งที่ร่วมกันทำงาน โปรแกรม C ทุกโปรแกรมมีฟังก์ชันอย่างน้อยหนึ่งฟังก์ชัน ซึ่งก็คือ main() และโปรแกรมที่ไม่สำคัญทั้งหมดสามารถกำหนดฟังก์ชันเพิ่มเติมได้
คุณสามารถแบ่งโค้ดของคุณออกเป็นฟังก์ชันต่างๆ ได้ วิธีที่คุณจะแบ่งโค้ดตามฟังก์ชันต่างๆ นั้นขึ้นอยู่กับคุณ แต่การแบ่งตามหลักเหตุผลคือแต่ละฟังก์ชันทำงานเฉพาะอย่าง
ฟังก์ชัน การประกาศ บอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชัน ประเภทการส่งคืน และพารามิเตอร์ ฟังก์ชัน คำจำกัดความ ให้เนื้อความที่แท้จริงของฟังก์ชัน
ไลบรารีมาตรฐาน C มีฟังก์ชันในตัวมากมายที่โปรแกรมของคุณสามารถเรียกใช้ได้ ตัวอย่างเช่น strcat() เพื่อเชื่อมสองสตริง memcpy() เพื่อคัดลอกตำแหน่งหน่วยความจำหนึ่งไปยังอีกตำแหน่งหนึ่ง และฟังก์ชันอื่นๆ อีกมากมาย
ฟังก์ชันยังสามารถเรียกว่าเป็นเมธอดหรือรูทีนย่อยหรือโพรซีเดอร์ เป็นต้น
การกำหนดฟังก์ชัน
รูปแบบทั่วไปของนิยามฟังก์ชันในภาษาซีมีดังนี้ –
return_type function_name( parameter list ) { body of the function }
นิยามฟังก์ชันในการเขียนโปรแกรม C ประกอบด้วยส่วนหัวของฟังก์ชันและเนื้อหาของฟังก์ชัน นี่คือทุกส่วนของฟังก์ชัน -
-
ประเภทการคืนสินค้า − ฟังก์ชันอาจคืนค่า return_type คือชนิดข้อมูลของค่าที่ฟังก์ชันส่งคืน ฟังก์ชันบางฟังก์ชันดำเนินการตามที่ต้องการโดยไม่คืนค่า ในกรณีนี้ return_type จะเป็นโมฆะของคำหลัก
-
ชื่อฟังก์ชัน − นี่คือชื่อจริงของฟังก์ชัน ชื่อฟังก์ชันและรายการพารามิเตอร์รวมกันเป็นฟังก์ชันลายเซ็น
-
พารามิเตอร์ − พารามิเตอร์เปรียบเสมือนตัวยึดตำแหน่ง เมื่อเรียกใช้ฟังก์ชัน คุณจะส่งค่าไปยังพารามิเตอร์ ค่านี้เรียกว่าพารามิเตอร์หรืออาร์กิวเมนต์จริง รายการพารามิเตอร์หมายถึงประเภท ลำดับ และจำนวนของพารามิเตอร์ของฟังก์ชัน พารามิเตอร์เป็นทางเลือก กล่าวคือ ฟังก์ชันต้องไม่มีพารามิเตอร์
-
ตัวฟังก์ชัน − ตัวฟังก์ชันประกอบด้วยชุดของคำสั่งที่กำหนดหน้าที่ของฟังก์ชัน
โค้ดตัวอย่าง
/* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
ประกาศฟังก์ชัน
ฟังก์ชัน การประกาศ บอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชันและวิธีการเรียกใช้ฟังก์ชัน สามารถกำหนดเนื้อความที่แท้จริงของฟังก์ชันแยกกันได้
การประกาศฟังก์ชันมีส่วนต่างๆ ดังต่อไปนี้ -
return_type function_name( parameter list );
สำหรับฟังก์ชันที่กำหนดไว้ข้างต้น max() การประกาศฟังก์ชันจะเป็นดังนี้ −
int max(int num1, int num2);
ชื่อพารามิเตอร์ไม่สำคัญในการประกาศฟังก์ชันเฉพาะประเภทที่จำเป็นเท่านั้น ดังนั้นสิ่งต่อไปนี้จึงเป็นการประกาศที่ถูกต้องเช่นกัน -
int max(int, int);
การเรียกฟังก์ชัน
ขณะสร้างฟังก์ชัน C คุณต้องให้คำจำกัดความว่าฟังก์ชันนี้ต้องทำอะไร ในการใช้ฟังก์ชัน คุณจะต้องเรียกใช้ฟังก์ชันนั้นเพื่อทำงานที่กำหนดไว้
เมื่อโปรแกรมเรียกใช้ฟังก์ชัน การควบคุมโปรแกรมจะถูกโอนไปยังฟังก์ชันที่เรียก ฟังก์ชันที่เรียกทำงานตามที่กำหนดไว้ และเมื่อมีการเรียกใช้คำสั่ง return หรือเมื่อถึงวงเล็บปีกกาปิดฟังก์ชัน ฟังก์ชันจะส่งคืนการควบคุมโปรแกรมกลับไปที่โปรแกรมหลัก
ในการเรียกใช้ฟังก์ชัน คุณเพียงแค่ส่งพารามิเตอร์ที่จำเป็นพร้อมกับชื่อฟังก์ชัน และหากฟังก์ชันส่งคืนค่า คุณจะสามารถเก็บค่าที่ส่งคืนได้ ตัวอย่างเช่น −
โค้ดตัวอย่าง
#include <stdio.h> /* function declaration */ int max(int num1, int num2); int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
ผลลัพธ์
Max value is : 200