typedef ภาษา C

ภาษาการเขียนโปรแกรม C มีคีย์เวิร์ดที่เรียกว่า typedef ซึ่งคุณสามารถใช้ตั้งชื่อใหม่ให้กับประเภทได้ ต่อไปนี้เป็นตัวอย่างการกำหนดคำ BYTE สำหรับตัวเลขหนึ่งไบต์ −

typedef unsigned char BYTE;


หลังจากคำจำกัดความของประเภทนี้ ตัวระบุ BYTE สามารถใช้เป็นตัวย่อสำหรับชนิดข้อมูล unsigned char,  ตัวอย่างเช่น .

BYTE  b1, b2;


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

typedef unsigned char byte;


คุณสามารถใช้ typedef เพื่อตั้งชื่อให้กับชนิดข้อมูลที่ผู้ใช้กำหนดได้เช่นกัน ตัวอย่างเช่น คุณสามารถใช้ typedef กับโครงสร้างเพื่อกำหนดชนิดข้อมูลใหม่ แล้วใช้ชนิดข้อมูลนั้นเพื่อกำหนดตัวแปรโครงสร้างโดยตรงดังนี้:

#include <stdio.h>
#include <string.h>
 
typedef struct Books {
   char title[50];
   char author[50];
   char subject[100];
   int book_id;
} Book;
 
int main( ) {

   Book book;
 
   strcpy( book.title, "C Programming");
   strcpy( book.author, "Nuha Ali"); 
   strcpy( book.subject, "C Programming Tutorial");
   book.book_id = 6495407;
 
   printf( "Book title : %s\n", book.title);
   printf( "Book author : %s\n", book.author);
   printf( "Book subject : %s\n", book.subject);
   printf( "Book book_id : %d\n", book.book_id);

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Book  title : C Programming
Book  author : Nuha Ali
Book  subject : C Programming Tutorial
Book  book_id : 6495407


typedef กับ #define


#define เป็นคำสั่ง C ซึ่งใช้เพื่อกำหนดนามแฝงสำหรับประเภทข้อมูลต่างๆ ที่คล้ายกับ typedef แต่มีความแตกต่างดังต่อไปนี้:

  • typedef ถูกจำกัดให้ตั้งชื่อสัญลักษณ์ให้กับประเภทเท่านั้น เนื่องจาก #define สามารถใช้กำหนดนามแฝงสำหรับค่าได้เช่นกัน q. คุณสามารถกำหนด 1 เป็น ONE เป็นต้น

  • การตีความ typedef ดำเนินการโดยคอมไพเลอร์ในขณะที่คำสั่ง #define ถูกประมวลผลโดยตัวประมวลผลล่วงหน้า


ตัวอย่างต่อไปนี้แสดงวิธีการใช้ #define ในโปรแกรม −

##include <stdio.h>
 
#define TRUE  1
#define FALSE 0
 
int main( ) {
   printf( "Value of TRUE : %d\n", TRUE);
   printf( "Value of FALSE : %d\n", FALSE);

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Value of TRUE : 1
Value of FALSE : 0

Leave a Reply

Your email address will not be published. Required fields are marked *