ฟังก์ชั่น ภาษา C
ฟังก์ชันคือกลุ่มของคำสั่งที่ร่วมกันทำงาน โปรแกรม C ทุกโปรแกรมมีฟังก์ชันอย่างน้อยหนึ่งฟังก์ชัน ซึ่งก็คือ main() และโปรแกรมที่ไม่สำคัญทั้งหมดสามารถกำหนดฟังก์ชันเพิ่มเติมได้
คุณสามารถแบ่งโค้ดของคุณออกเป็นฟังก์ชันต่างๆ ได้ วิธีที่คุณจะแบ่งโค้ดระหว่างฟังก์ชันต่างๆ นั้นขึ้นอยู่กับคุณ แต่การแบ่งตามหลักเหตุผลนั้น แต่ละฟังก์ชันทำงานเฉพาะอย่าง
การประกาศ (declaration) ฟังก์ชันจะบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชัน ประเภทการส่งคืน และพารามิเตอร์ นิยามฟังก์ชัน (definition) ให้เนื้อความที่แท้จริงของฟังก์ชัน
ไลบรารีมาตรฐาน C มีฟังก์ชันในตัวมากมายที่โปรแกรมของคุณสามารถเรียกใช้ได้ ตัวอย่างเช่น strcat() เพื่อเชื่อมสองสตริงเข้าด้วยกัน memcpy() เพื่อคัดลอกตำแหน่งหน่วยความจำหนึ่งไปยังตำแหน่งอื่น และฟังก์ชันอื่น ๆ อีกมากมาย
ฟังก์ชันยังสามารถอ้างอิงเป็นเมธอดหรือรูทีนย่อยหรือโพรซีเดอร์ เป็นต้น
Defining a Function (การกำหนดฟังก์ชัน)
รูปแบบทั่วไปของนิยามฟังก์ชันในภาษาซีมีดังต่อไปนี้ −
return_type function_name( parameter list ) {
body of the function
}
ความหมายฟังก์ชั่นในการเขียนโปรแกรม C ประกอบด้วยส่วนหัวของฟังก์ชั่นและการทำงานของร่างกาย นี่คือทุกส่วนของฟังก์ชัน −
- Return Type – ฟังก์ชันอาจส่งกลับค่า return_type เป็นชนิดข้อมูลของค่าตอบแทนที่ฟังก์ชั่น ฟังก์ชันบางฟังก์ชันดำเนินการตามที่ต้องการโดยไม่คืนค่า ในกรณีนี้ return_type เป็นคำหลักเป็น void
- Function Name – นี่คือชื่อจริงของฟังก์ชัน ชื่อฟังก์ชันและรายการพารามิเตอร์รวมกันเป็นฟังก์ชัน signature
- Parameters – พารามิเตอร์เป็นเหมือนตัวยึด เมื่อเรียกใช้ฟังก์ชัน คุณจะส่งค่าไปยังพารามิเตอร์ ค่านี้เรียกว่าพารามิเตอร์หรืออาร์กิวเมนต์จริง รายการพารามิเตอร์หมายถึงประเภท ลำดับ และจำนวนของพารามิเตอร์ของฟังก์ชัน พารามิเตอร์เป็นทางเลือก กล่าวคือ ฟังก์ชันต้องไม่มีพารามิเตอร์
- Function Body – ตัวฟังก์ชันประกอบด้วยชุดของคำสั่งที่กำหนดสิ่งที่ทำหน้าที่ทำ
ตัวอย่าง
ด้านล่างเป็นโค้ดที่มาสำหรับฟังก์ชั่นที่เรียกว่า max () ฟังก์ชันนี้ใช้พารามิเตอร์สองตัว num1 และ num2 และส่งกลับค่าสูงสุดระหว่างสองตัว −
/* 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;
}
Function Declarations (ประกาศฟังก์ชัน)
การประกาศฟังก์ชันจะบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชันและวิธีการเรียกใช้ฟังก์ชัน สามารถกำหนดเนื้อความที่แท้จริงของฟังก์ชันแยกกันได้
การประกาศฟังก์ชันมีส่วนต่างๆ ดังต่อไปนี้ −
return_type function_name( parameter list );
สำหรับฟังก์ชันที่กำหนดไว้ข้างต้น max() การประกาศฟังก์ชันจะเป็นดังนี้ −
int max(int num1, int num2);
ชื่อพารามิเตอร์ไม่สำคัญในการประกาศฟังก์ชันเฉพาะประเภทที่จำเป็นเท่านั้น ดังนั้น ต่อไปนี้จึงเป็นการประกาศที่ถูกต้องเช่นกัน:
int max(int, int);
จำเป็นต้องมีการประกาศฟังก์ชันเมื่อคุณกำหนดฟังก์ชันในไฟล์ต้นทางหนึ่งไฟล์ และคุณเรียกใช้ฟังก์ชันนั้นในไฟล์อื่น ในกรณีดังกล่าว คุณควรประกาศฟังก์ชันที่ด้านบนของไฟล์ที่เรียกใช้ฟังก์ชัน
Calling a Function (การเรียกใช้ฟังก์ชัน)
ขณะสร้างฟังก์ชัน 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;
}