Friday, February 20, 2015

ชนิดข้อมูลแบบสร้างเองในภาษา c และ c++

ตัวแปรแบบสร้างเองใน c และ c++ จริงๆแล้วก็คือ struct นั่นเอง แนวคิดของการสร้างข้อมูลชนิดนี้ขึ้นมาก็คือ ต้องการเก็บข้อมูลให้เป็นกลุ่มก้อนเดียวกัน เพื่อว่าจะสามารถเข้าถึง ดำเนินการต่างๆ หรือโอนย้ายได้ง่าย ขอยกตัวอย่างให้เห็นชัด กรณีตำแหน่งของจุดๆหนึ่งในพิกัดฉาก เราจะบอกตำแหน่งนั้นด้วยพิกัด x , y และ z ในที่นี้หากเราต้องการเก็บข้อมูลพิกัดทั้งสามนี้เป็นข้อมูลกลุ่มเดียวกัน เราจะทำการประกาศโครงสร้างแบบ struct เพื่อกำหนดชนิดข้อมูลแบบสร้างเองขึ้นมา เช่น ต้องการสร้างข้อมูลชนิด Point ที่มีสมาชิกในกลุ่มเป็นพิกัด x , y และ z ที่เป็นชนิดข้อมูลแบบ int เราจะประกาศโครงสร้างตามโค้ดโปรแกรมดังนี้ครับ
struct Point
{
                   int x ;
                   int y ;
                   int z ;
} ;

เราสามารถใช้ฟังก์ชัน sizeof หาขนาดหน่วยความจำของตัวแปรชนิด Point ได้เหมือนตัวแปรปกติทั่วไป โดยจากตัวอย่างตัวแปรชนิด Point ต้องการหน่วยความจำในการจัดเก็บ 3x4 = 12 bytes
การกำหนดค่าให้กับตัวแปรขนิด Point สามารถทำได้ผ่านตัวดำเนินการ . ดังตัวอย่าง
Point V   // ประกาศตัวแปร V เป็นข้อมูลประเภท Point
V.x = 10 ;                 //กำหนดให้ x มีค่าเท่ากับ 10
V.y = 15 ;                 //กำหนดให้ y มีค่าเท่ากับ 15
V.Z = 20 ;                 //กำหนดให้ z มีค่าเท่ากับ 20

จากบทความที่ผ่านมาเราได้เขียนโปรแกรมเกี่ยวกับการดำเนินการของเมตริกซ์  ซึ่งเราสามารถกำหนดชนิดตัวแปรแบบเมตริกซ์ไว้ใช้งานได้เช่นกัน ดังนี้
struct Matrix
{
                   int col ;
                   int row ;
                   Float** member ;
};

เท่านี้ก็สามารถใช้งานตัวแปรแบบเมตริกซ์ได้อย่างสะดวกครับ ตัวอย่างการใช้งานจะนำเสนอในบทความอื่นๆต่อไป

เราสามารถพบเจอตัวแปรแบบสร้างเองมากขึ้นในการเขียนโปรแกรมประเภทวินโดว์ ด้วย Visual C++ , WIN32 API ซึ่งมีการกำหนดตัวแปรชนิดใหม่ๆขึ้นมารองรับการพัฒนาแอฟพลิเคชั่นเพื่อความสะดวกกับโปรแกรมเมอร์ผู้พัฒนา Application เหล่านั้น