2. ฟังก์ชันที่เรียกใช้ฟังก์ชันอื่น
2. ฟังก์ชันที่เรียกใช้ฟังก์ชันอื่น
รูปแบบของฟังก์ชัน
ชนิดข้อมูล ชื่อฟังก์ชัน (การประกาศพารามิเตอร์ - ถ้ามี)
{
การประกาศตัวแปรเฉพาะที่
กลุ่มข้อความสั่ง
(return)
}
ชนิดข้อมูล คือ ชนิดของข้อมูลที่ฟังก์ชันนี้จะส่งกลับ
ถ้าฟังก์ชันไม่ส่งค่ากลับ ชนิดข้อมูลคือ void
การประกาศพารามิเตอร์ คือ การกำหนดชนิดของตัวแปรที่เป็นตัวรับค่า
ถ้ามีมากกว่า 1 ตัว ใช้จุลภาค (,) คั่นระหว่างแต่ละตัว
การประกาศตัวแปรเฉพาะที่ คือ การประกาศตัวแปรที่ใช้เฉพาะในฟังก์ชันนี้
return คือ ข้อความสั่งที่ใช้ในการส่งค่ากลับ
ค่าที่ส่งกลับคือค่าหลัง return
รูปแบบของการเรียกใช้ฟังก์ชัน
ชื่อฟังก์ชัน(a1, a2, …, an)
ชื่อฟังก์ชัน คือ ชื่อฟังก์ชันที่ต้องการเรียกใช้
a1, a2, …, an คือ นิพจน์ที่ต้องการส่งค่าไปใช้ในฟังก์ชัน เรียกว่าอาร์กิวเมนต์ (argument) จำนวนอาร์กิวเมนต์ และจำนวนพารามิเตอร์ต้องเท่ากัน และตัวที่อยู่ตำแหน่งตรงกันต้องมีชนิดเดียวกันด้วย
การส่งผ่านข้อมูลระหว่างอาร์กิวเมนต์ และพารามิเตอร์
ใช้วิธีเรียกด้วยมูลค่า (call by value) โดยมีการทำงานคือ
คำนวณนิพจน์ที่เป็นอาร์กิวเมนต์
คัดลอกค่าอาร์กิวเมนต์ให้กับพารามิเตอร์ ที่อยู่ในลำดับตรงกัน
ทำงานตามข้อความสั่งในฟังก์ชันจนจบ หรือเมื่อพบข้อความสั่ง return
ส่งกลับค่าที่อยู่ในข้อความสั่ง return (ถ้ามี)
การส่งผ่านข้อมูลระหว่างอาร์กิวเมนต์และพารามิเตอร์โดยวิธีเรียกด้วยมูลค่า ทำให้ไม่สามารถเปลี่ยนค่าของอาร์กิวเมนต์โดยฟังก์ชันได้
ตัวอย่าง 6.1 ต้นแบบฟังก์ชัน (function prototype)
#include <stdio.h>
void fun() /* ฟังก์ชันที่ถูกเรียก */
{
...
...
}
void fun() /* ฟังก์ชันที่เป็นตัวเรียก */
...
...
fun(); /* เรียกฟังก์ชัน fun() จากฟังก์ชัน main() */
...
...
}
นอกจากนี้สามารถกำหนดฟังก์ชันที่เป็นตัวเรียกก่อนฟังก์ชันที่ถูกเรียกได้ ในกรณีที่กำหนดฟังก์ชันที่เป็นตัวเรียกไว้ก่อน ต้องมีต้นแบบฟังก์ชันก่อนฟังก์ชันที่เป็นตัวเรียก โดยส่วนมากมักกำหนดต้นแบบฟังก์ชันของฟังก์ชันทั้งหมดในโปรแกรม หลังข้อความสั่งตัวประมวลผลก่อน (preprocessor)
จัดทำโดย นางสาวทิพย์สุคนธ์ พันธ์กิ่ง กลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี
โรงเรียนบุญวัฒนา สำนักงานเขตพื้นที่การศึกษามัธยมศึกษานครราชสีมา