Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

หมวดหมู่ของฟังก์ชันในภาษา C Programming

ฟังก์ชันใน C แบ่งเป็น 4 ประเภท ตาม มี/ไม่มี Argument** และ มี/ไม่มี Return Value**

ตารางสรุป 4 ประเภท

ประเภทArgumentReturnรูปแบบ
1. ไม่มี Argument, ไม่มี Return❌❌void func(void)
2. ไม่มี Argument, มี Return❌✅int func(void)
3. มี Argument, ไม่มี Return✅❌void func(int, int)
4. มี Argument, มี Return✅✅int func(int, int)

1. ไม่มี Argument, ไม่มี Return

ทำงานอิสระ ไม่รับค่า ไม่ส่งค่า ใช้สำหรับงานที่ทำซ้ำ เช่น แสดงเมนู

#include <stdio.h>

void sum() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = a + b;
    printf("Sum = %d\n", c);
}

int main() {
    sum();  // เรียกใช้
    return 0;
}

2. ไม่มี Argument, มี Return

คำนวณ/รับค่าเองในฟังก์ชัน ส่งผลลัพธ์กลับ

#include <stdio.h>

int sum() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = a + b;
    return c;
}

int main() {
    int result = sum();
    printf("Sum = %d\n", result);
    return 0;
}

3. มี Argument, ไม่มี Return

รับค่ามาประมวลผล แสดงผล/แก้ไขค่าโดยตรง (ถ้าเป็น Pointer)

#include <stdio.h>

void sum(int a, int b) {
    int c = a + b;
    printf("Sum = %d\n", c);
}

int main() {
    int a, b;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    sum(a, b);  // ส่งค่าเข้าไป
    return 0;
}

4. มี Argument, มี Return (พื้นฐานที่สุด)

รับค่า ประมวลผล ส่งผลลัพธ์กลับ - ใช้กันมากที่สุด

#include <stdio.h>

int sum(int a, int b) {
    return a + b;
}

int main() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = sum(a, b);
    printf("Sum = %d\n", c);
    return 0;
}

ผลลัพธ์ (ทุกตัวอย่าง)

Enter 2 numbers: 10 20
Sum = 30

การเลือกใช้ประเภทไหน?

สถานการณ์ประเภทที่เหมาะสม
ทำงานคงที่ ไม่ต้องข้อมูลนำเข้าType 1: void func(void)
คำนวณค่าคงที่/สุ่ม/Input เองType 2: int func(void)
ประมวลผลข้อมูลที่ส่งมา แสดงผลทันทีType 3: void func(args)
คำนวณและส่งค่ากลับเพื่อนำไปใช้ต่อType 4: int func(args) ⭐

Function Prototype (Declaration)

ประกาศ Prototype ก่อน main() เพื่อให้ Compiler ตรวจสอบ Type Checking

// Prototype
void sum(void);
int sum(void);
void sum(int, int);
int sum(int, int);

// Definition อยู่หลัง main() ก็ได้