หน่วยที่ 8 ฟังก์ชัน

ฟังก์ชัน (Function)

การเขียนโปรแกรมในบทก่อนหน้าเป็นโปรแกรมขนาดเล็กที่มีการแก้ปัญหาที่ไม่ซับซ้อน เมื่อต้องการแก้ปัญหาที่ยากหรือจำนวนงานมากขึ้น ทำให้การทำงานของโปรแกรมซับซ้อนขึ้นและโปรแกรมมีขนาดใหญ่ขึ้นเช่นกัน ถ้าโปรแกรมมีเพียงฟังก์ชัน main ฟังก์ชันเดียว การแก้ไข เพิ่มเติม และตรวจสอบการทำงานของโปรแกรมจะทำได้ยาก เพื่อทำให้เขียนโปรแกรมได้สะดวกและเข้าใจง่ายขึ้น จึงควรแบ่งงานออกเป็นส่วนย่อยหรือ module โดยกำหนดให้แต่ละ module ทำงานเฉพาะอย่าง รูปที่ 1 แสดงการแบ่งงานออกเป็น module โดยแต่ละ module มีความสัมพันธ์กันในลักษณะที่เป็นแบบลำดับขั้น ความสัมพันธ์ดังกล่าวทำให้เกิดการทำงานร่วมกันของงานย่อยเหล่านี้และทำให้แก้ปัญหาที่มีงานจำนวนมากได้สำเร็จ

การแบ่งงานออกเป็นส่วนย่อยในภาษา C ทำได้โดยการสร้างฟังก์ชัน (function) โดยฟังก์ชันในภาษา C มี 2 ประเภทคือ ฟังก์ชันที่สร้างขึ้น (user defined function) และฟังก์ชันมาตรฐาน (standard functions)

ฟังก์ชันที่สร้างขึ้นเป็นฟังก์ชันที่ผู้เขียนโปรแกรมสร้างขึ้นเพื่อทำงานใดงานหนึ่ง และสามารถเรียกใช้ได้ตามต้องการ ส่วนฟังก์ชันมาตรฐานเป็นฟังก์ชันที่สร้างเตรียมไว้แล้วและประกาศไว้ใน header file ซึ่งเป็นไฟล์ที่มีส่วนขยายเป็น .h บทนี้เน้นเนื้อหาในส่วนของฟังก์ชันที่สร้างขึ้น โดยเริ่มต้นอธิบายฟังก์ชันในภาษา C (function in C) เพื่อให้เข้าใจความสัมพันธ์ของแต่ละฟังก์ชันในโปรแกรม หลังจากนั้นในหัวข้อฟังก์ชันที่สร้างขึ้น (user defined function) มีคำอธิบายเกี่ยวกับองค์ประกอบ การสร้างฟังก์ชันและรายละเอียดสำคัญของการสร้างฟังก์ชัน และหัวข้อสุดท้ายคือการใช้งานฟังก์ชันมาตรฐาน (standard functions) ซึ่งมีเนื้อหาเฉพาะเรื่องฟังก์ชันทางคณิตศาสตร์


ฟังก์ชันในภาษา C (Function in C)

โปรแกรมที่ประกอบขึ้นจากหลายฟังก์ชัน แต่ละฟังก์ชันอาจเรียกใช้ฟังก์ชันอื่น หรือถูกฟังก์ชันอื่นเรียกใช้ เป็นไปตามลำดับขั้นตอนและหน้าที่ของการทำงานของแต่ละฟังก์ชัน รูปที่ 2 แสดงตัวอย่างความสัมพันธ์ฟังก์ชัน ทุกโปรแกรมต้องมีฟังก์ชัน main ทำหน้าที่เป็นจุดเริ่มต้นของโปรแกรมเสมอในตัวอย่างนี้ฟังก์ชัน main เรียกใช้ฟังก์ชัน function1, function2 และ function3 ส่วนใน function1 เรียกใช้ functionA และ functionB จะเห็นได้ว่าฟังก์ชันที่สร้างขึ้นสามารถเรียกใช้ฟังก์ชันอื่นและถูกฟังก์ชันอื่นเรียกใช้ได้เช่นกัน