ฟังก์ชันคือกลุ่มของคำสั่งที่ร่วมกันทำงาน โปรแกรม 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