ฟังก์ชั่น ภาษา 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; 
}

Leave a Reply

Your email address will not be published. Required fields are marked *