. . . . . . . .วันนี้เป็นเรื่องโครงสร้างช้อมูล ถ้าเราเคยใช้ระบบ record ของฐานข้อมูล DBASE, Foxpro หรือ ฐานข้อมูลอื่นๆ จะเห็นโครงสร้างข้อมูล จะมีรายละเอียดย่อยที่เราเรียกว่า ฟิลด์ และการใช้งานในลักษณะนั้น สามารถทำได้แบบนี้ |
#include <stdio.h> #include <conio.h> typedef struct TRecord //<------ วิธีกำหนดโครงสร้าง { //<--- ขอบเขตของโครงสร้าง
}; //<--- สิ้นสุดขอบเขตของโครงสร้าง int main( ) {
} |
Sawasdee |
. . . . . . . .จากตัวอย่างข้างบน
วิธีการกำหนดโครงสร้างให้ทำแบบนี้
การกำหนดตัวแปรโครงสร้างให้ทำแบบนี้
การใช้งานฟิลด์ในโครงสร้างให้ทำแบบนี้
ดูแล้วไม่ยากเลยใช่ไหม กลับไปดูใหม่ได้นะครับ ต่อไปเป็นโครงสร้างแบบซ้อน |
#include <stdio.h> #include <conio.h> typedef struct TSubRecord {
}; typedef struct TRecord //<------ วิธีกำหนดโครงสร้าง { //<--- ขอบเขตของโครงสร้าง
}; //<--- สิ้นสุดขอบเขตของโครงสร้าง int main( ) {
} |
Sawasdee Sawasdee2 |
. . . . . . . .จากตัวอย่างข้างบน
เป็นการกำหนดฟิลด์แบบโครงสร้าง
แต่การเข้าถึงฟิลด์ก็เหมือนเดิม
คือ
ต้องมีจุดไข่ปลาขั้นแล้วตามด้วยชื่อฟิลด์ที่จะใช้งาน การใช้งานฟิลด์ในโครงสร้างแรก
การใช้งานฟิลด์ในโครงสร้างที่สอง
ไม่ยากอะไรใช่ไหม ลองเพิ่มฟิลด์สิครับ ไม่จำกัดรูปแบบ แต่อย่าลืมการอ้างถึงต้องมีจุดไข่ปลาเสมอ ลองดูอีกแบบนะครับ เป็นการกำหนดฟิลด์แบบต่างๆในโครงสร้าง |
#include <stdio.h> #include <conio.h> typedef struct TSubRecord {
}; typedef struct TRecord //<------ วิธีกำหนดโครงสร้าง { //<--- ขอบเขตของโครงสร้าง
}; //<--- สิ้นสุดขอบเขตของโครงสร้าง int main( ) {
} |
Sawasdee 100 200 Sawasdee2 |
typedef struct TSubRecord {
}; typedef struct TRecord //<------ วิธีกำหนดโครงสร้าง { //<--- ขอบเขตของโครงสร้าง
}; //<--- สิ้นสุดขอบเขตของโครงสร้าง strcpy( rec1.data, "Sawasdee" ); rec1.value1 = 100; rec1.value2 = 200; strcpy( rec1.sub1.data, "Sawasdee2" ); //<----- copy ข้อความให้ฟิลด์ data ของ sub1 |
. . . . . . . .วันนี้ออกจะสั้นเพราะเป็นเนื้อหาที่ไม่ซับซ้อนมากนัก แต่ควรจะลองเขียนบ่อยๆ เพราะรูปแบบโครงสร้าง มีใช้ในโปรแกรมทุกโปรแกรม ต่อไปจะเข้าเรื่อง ตัวแปร pointer นะครับ หลังจากนั้นจะพาเขียนกราฟฟิกครับ ใกล้แล้วๆ |