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

Structure ที่มีขอบเขตท้องถิ่น (Local Scope) ในภาษา C

ความหมายของ Structure

Structure เป็นการรวมหัวข้อมูล (variables) ที่มีชนิดข้อมูลต่างๆ เข้าด้วยกันภายใต้ชื่อเดียว

รูปแบบทั่วไปของการประกาศ Structure

struct tagname {
    datatype member1;
    datatype member2;
    datatype memberN;
};
  • struct - คีย์เวิร์ดสำหรับประกาศ structure
  • tagname - ชื่อของ structure
  • member1, member2... - สมาชิกหรือข้อมูลที่ประกอบเป็น structure

ตัวอย่าง: Structure สำหรับหนังสือ

struct book {
    int pages;
    char author[30];
    float price;
};

ตัวอย่างโปรแกรม: Structure ที่ประกาศใน Local Scope

#include <stdio.h>
// Global structure สำหรับพนักงาน
struct {
    char name[20];
    int age;
    int salary;
    char add[30];
} emp1, emp2;

int manager() {
    // Structure ที่ประกาศใน local scope (ภายในฟังก์ชัน manager)
    struct {
        char name[20];
        int age;
        int salary;
        char add[50];
    } manager;
    
    manager.age = 27;
    if (manager.age > 30)
        manager.salary = 650000;
    else
        manager.salary = 550000;
    return manager.salary;
}

int main() {
    printf("ป้อนชื่อพนักงาน 1: ");
    scanf("%s", emp1.name);
    printf("\\nป้อนที่อยู่พนักงาน 1: ");
    scanf("%s", emp1.add);
    printf("\\nป้อนเงินเดือนพนักงาน 1: ");
    scanf("%d", &emp1.salary);
    
    printf("\\nป้อนชื่อพนักงาน 2: ");
    scanf("%s", emp2.name);
    printf("\\nป้อนที่อยู่พนักงาน 2: ");
    scanf("%s", emp2.add);
    printf("\\nป้อนเงินเดือนพนักงาน 2: ");
    scanf("%d", &emp2.salary);
    
    printf("\\nเงินเดือนพนักงาน 1 คือ %d", emp1.salary);
    printf("\\nเงินเดือนพนักงาน 2 คือ %d", emp2.salary);
    printf("\\nเงินเดือนผู้จัดการคือ %d", manager());
    return 0;
}

ผลลัพธ์ตัวอย่าง

ป้อนชื่อพนักงาน 1: Bob
ป้อนที่อยู่พนักงาน 1: Hyderabad
ป้อนเงินเดือนพนักงาน 1: 500000
ป้อนชื่อพนักงาน 2: Hari
ป้อนที่อยู่พนักงาน 2: Chennai
ป้อนเงินเดือนพนักงาน 2: 450000
เงินเดือนพนักงาน 1 คือ 500000
เงินเดือนพนักงาน 2 คือ 450000
เงินเดือนผู้จัดการคือ 550000

คำอธิบายสำคัญ

  • Structure ที่ประกาศภายในฟังก์ชัน (local scope) จะใช้งานได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น
  • Structure ที่ประกาศนอกฟังก์ชัน (global scope) ใช้งานได้ทั่วโปรแกรม
  • ในตัวอย่าง โครงสร้าง manager ถูกประกาศภายในฟังก์ชัน manager() จึงเป็น local structure