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

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

ในภาษา C มีฟังก์ชันต่างๆ มากมายที่เราสามารถใช้ได้ เพื่อทำหน้าที่ต่างๆ ที่ต้องการ ในการใช้ฟังก์ชันโดยปกติต้อง include header file ของฟังก์ชันนั้นมาด้วย ตารางข้างล่างเป็นตัวอย่างฟังก์ชันบางส่วนในภาษา C
Function nameLibraryUsage
scanfstdio.hgetting keyboard input
printfstdio.hdisplay text to screen
getchconio.hget character input
sqrtcmath.hget square root of number
floorcmath.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 การสร้างและการใช้งานฟังก์ชันในพื้นฐาน


ไม่มีความคิดเห็น:

แสดงความคิดเห็น