ฟังก์ชัน

ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับฟังก์ชันในภาษา C เบื้องต้น เช่น ฟังก์ชันที่สร้างมากับภาษา และฟังก์ชันที่สร้างขึ้นเอง

ฟังก์ชัน คือส่วนของโปรแกรมที่ถูกเขียนขึ้นเพื่อทำหน้าที่เฉพาะของมัน ฟังก์ชันในภาษา C นั้นจะมีฟังก์ชันที่มากับภาษา และฟังก์ชันที่ผู้ใช้สร้างขึ้นเอง ในบทนี้เราจะพูดเกี่ยวกับฟังก์ชันที่จะสร้างขึ้นเองเป็นส่วนมาก

ฟังก์ชันในภาษา C

ในภาษา C มีฟังก์ชันต่างๆ มากมายที่เราสามารถใช้ได้ เพื่อทำหน้าที่ต่างๆ ที่ต้องการ ในการใช้ฟังก์ชันโดยปกติต้อง include header file ของฟังก์ชันนั้นมาด้วย ตารางข้างล่างเป็นตัวอย่างฟังก์ชันบางส่วนในภาษา C

Function nameLibraryUsage
scanfstdio.hgetting keyboard input
printfstdio.hdisplay text to screen
getchconio.hget character input
sqrtmath.hget square root of number
floormath.hfloor floating point of number to int
strlenstdio.hget characters' length

ตัวอย่างการใช้ฟังก์ชันที่มากับภาษา C

sqrt(25); //5
floor(1.34); //1

การประกาศฟังก์ชัน

เนื้อหาที่เราจะเน้นในบทนี้คือฟังก์ชันที่ผู้ใช้สร้างขึ้นเอง ในภาษา C นั้น คุณสามารถสร้างฟังก์ชันของคุณเอง เพื่อที่จะให้ทำงานตามที่ต้องการได้ แนวคิดของฟังก์ชันก็คือนำโค้ดกลับมาใช้ใหม่โดยที่ไม่ต้องเขียนโปรแกรมใหม่ทั้งหมด ก่อนที่เราจะใช้ฟังก์ชันมันจำเป็นต้องถูกประกาศก่อน ซึ่งรูปแบบการประกาศฟังก์ชันในภาษา C:

type name ( parameter1, parameter2, ... ) {
statements
}

type เป็นประเภทของฟังก์ชันที่ต้องการประกาศ ซึ่งขึ้นกับค่าผลลัพธ์ของฟังก์ชันเป็นอะไร คุณสามารถประกาศ function type ได้เหมือนกับ primitive datatype เช่น int, float, char และอื่นๆ สำหรับฟังก์ชันที่ไม่มีการส่งค่ากลับจะมี type เป็น void

name เป็นชื่อของฟังก์ชันที่คุณต้องการสร้าง ในการตั้งชื่อฟังก์ชันมันมีกฏเช่นเดียวกันเหมือนกับการตั้งชื่อตัวแปร ชื่อของฟังก์ชันเป็นสิ่งที่เราจะใช้เมื่อต้องการใช้งานฟังก์ชัน

parameters เป็นตัวแปรที่ส่งเข้ามาในฟังก์ชัน พารามิเตอร์เป็นทางเลือกซึ่งสามารถมีหรือไม่ก็ได้

statement เป็นคำสั่งของโปรแกรมเพื่อที่จะให้ฟังก์ชันทำงานและได้ผลลัพธ์ที่ต้องการ

มาดูตัวอย่างของฟังก์ชันหา factorial ของตัวเลขที่เราจะสร้างขึ้นเอง

#include <stdio.h>

int myFactorial (int);

int main () {
int myNumber = 5;
printf ("%d face is %d", myNumber, myFactorial(myNumber));
return 0;
}

int myFactorial (int n) {
int result = 1, i;
for (i = 1; i <= n; i++) {
result *= i;
}
return result;
}

ในตัวอย่างเป็นฟังก์ชันในการหาค่า factorial ของตัวเลข ที่สร้างขึ้นเอง ในการสร้างฟังก์ชันในภาษา C จะต้องกำหนดฟังก์ชันขึ้นก่อนที่จะเรียกใช้งาน สังเกตุในตัวอย่าง เราได้สร้างฟังก์ชันอยู่ด้านล่าง แต่เราเรียกใช้ฟังก์ชันก่อนที่มีจะถูกสร้างในฟังก์ชัน main ของเรา ดังนั้นมันจึงจำเป็นต้องถูกประกาศไว้ก่อนด้านบนของโปรแกรม

และนี่เป็นผลลัพธ์ของโปรแกรม

5 face is 120

ฟังก์ชันพารามิเตอร์

ฟังก์ชันพารามิเตอร์เป็นพารามิเตอร์ที่ส่งเข้ามาในฟังก์ชัน โดยจะเป็นลำดับของตัวแปรที่ส่งเข้ามา พารามิเตอร์จะมีความสัมพันธ์กับอาร์กิวเมนต์ของฟังก์ชัน จากตัวอย่างก่อนหน้า ในฟังก์ชันหา factorial นั้นมีพารามิเตอร์คือ n มาดูตัวอย่างของฟังก์ชันพรารามิเตอร์

#include <stdio.h>

float area (float, float);

int main () {
float width = 8;
float height = 5.4;

printf ("Area is %.2f", area(width, height));

return 0;
}

float area (float w, float h) {
return w*h;
}

ในตัวอย่าง เราได้สร้างฟังก์ชันในการหาพื้นที่ของกล่องสี่เหลี่ยม ในการที่จะหาพื้นที่เราต้องการความกว้างและความยาว สังเกตว่าพารามิเตอร์ของฟังก์ชันนี่จะมีสองอัน คือ w และ h ซึ่งมีประเภทเป็น float และฟังก์ชันนี้ได้ return ค่าที่เป็น float กลับไปเช่นกัน เมื่อรันโปรแกรมจะได้ผลลัพธ์ดังนี้

Area is 43.20

นอกจากนี้ยังชันยังสามารถที่จะไม่มีพารามิเตอร์ได้

ฟังก์ชันอาร์กิวเมนต์

ฟังก์ชันอาร์กิวเมนต์ เป็นค่าของตัวแปรที่จะส่งเข้าไปในฟังก์ชัน ซึ่งจะต้องสอดคล้องกับฟังก์ชันพารามิเตอร์ ในตัวอย่างของคำสั่ง area(width, height) สังเกตุว่าฟังก์ชันอาร์กิวเมนต์จะมีสองตัว และประเภทของฟังก์ชันจะตรงกับลำดับของฟังก์ชันพารามิเตอร์ที่เราได้สร้างไว้

ค่า return ของฟังก์ชัน

ในการเขียนฟังก์ชันนั้น ส่วนมากจำเป็นต้องมีการส่งค่ากลับ โดยการใช้คำสั่ง return โดยในการประกาศฟังก์ชัน ประเภทของฟังก์ชันบ่งบอกถึงประเภทค่าที่ต้องการส่งกลับ จากในตัวอย่าง

float area (float, float);

สังเกตุว่า function type จะเป็น float นั่นหมายความว่าฟังก์ชันนี้จะมีค่าที่ส่งกลับเป็นเลขจำนวนจริง

นอกจากนี้ ในภาษา C เรายังสามารถสร้างฟังก์ชันที่ไม่มีค่า return ได้ โดยให้มี function type เป็น void มาดูตัวอย่าง

#include <stdio.h>

void introduce (char s[]) {
printf ("My name is %s\n", s);
}
void sayHello (char s[]) {
printf ("Hello %s\n", s);
}

int main () {
char name[] = "Mateo";

introduce(name);
sayHello("Tommy");
return 0;
}

ผลลัพธ์เมื่อรันโปรแกรม

My name is Mateo
Hello Tommy

ในบทนี้คุณได้เรียนรู้เกี่ยวกับฟังก์ชันในภาษา C การสร้างและการใช้งานฟังก์ชันในพื้นฐาน


บทความเกี่ยวกับ ฟังก์ชัน

String ในภาษา PHP

String คือประเภทข้อมูลประเภทข้อความหรือการนำตัวอักษรหลายๆ ตัวมาต่อกันหรือเรียกว่าอาเรย์ของตัวอักษร โดยความยาวของ String นั้นสามารถเปลี่ยนแปลงได้ตามค่าที่กำหนดให...

ฟังก์ชัน ในภาษา C++

ฟังก์ชันเป็นส่วนหรือกลุ่มของคำสั่งเพื่อทำงานบางอย่าง แนวคิดของฟังก์ชันคือการรวบรวมโค้ดที่ใช้บ่อยๆ และซ้ำๆ กลับมาใช้ใหม่เมื่อคุณสร้างฟังก์ชันมันสามารถถูกเรียกใช้...

ฟังก์ชัน ในภาษา Python

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับฟังก์ชันในภาษา Python เราจะพูดถึงการสร้างและการใช้งานฟังก์ชันในเบื้องต้น และการเรียกใช้งานฟังก์ชันในรูปแบบต่างๆ ที่สำคัญ เช่น D...

Function Procedures ในภาษา Visual Basic

ฟังก์ชันและโพซีเยอร์ เป็นชุดของคำสั่งเพื่อให้ในโปรแกรมทำงานบางอย่าง โดยฟังก์ชันและโพซีเยอร์นั้นถือว่าเป็นสิ่งเดียวกัน แต่สิ่งที่แตกต่างกันคือฟังก์ชันจะมีการส่งค...

อาเรย์ฟังก์ชัน ในภาษา PHP

ในภาษา PHP มีฟังก์ชันอำนวยความสะดวกในการจัดการอาเรย์ ฟังก์ชันเหล่านี้เป็น Built-in function พื้นฐานที่จำเป็นในการเขียนโปรแกรม มีฟังก์ชันเกี่ยวกับอาเรย์เป็นจำนวน...