C typedef
Bahasa C menyediakan kata kuncitypedef, Anda dapat menggunakannya untuk mengambil nama baru untuk jenis.Contoh berikut mendefinisikanBYTE jangka adalah nomor byte tunggal:
typedef unsigned char BYTE;
Setelah definisi jenis ini, dapat digunakan sebagai identifier BYTEunsigned tipe charsingkatan, seperti:
BYTE b1, b2;
Dengan konvensi, definisi akan dikapitalisasi surat-surat untuk mengingatkan pengguna untuk mengetik nama simbolik merupakan singkatan, namun Anda juga dapat menggunakan huruf kecil, sebagai berikut:
typedef unsigned char byte;
Anda juga dapat menggunakantypedef untuk tipe data khusus untuk mengambil nama baru bagi pengguna.Misalnya, Anda dapat menggunakan typedef struktur untuk menentukan tipe data baru, dan kemudian menggunakan tipe data baru ini untuk menentukan struktur variabel langsung, sebagai berikut:
#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; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407
typedef vs #define
C# define direktif digunakan untuk mendefinisikan alias untuk berbagai jenis data, dan typedefserupa, tetapi mereka memiliki perbedaan sebagai berikut:
- typedef hanya nama simbolik untuk typedef,# define dapat tidak hanya menentukan jenis alias, tetapi juga menentukan alias untuk nilai, misalnya, Anda dapat menentukan 1 ONE.
- typedef dilakukan oleh compiler ditafsirkan,pernyataan define dilakukan oleh pra-diproses oleh compiler.
Berikut adalah penggunaan sederhana dari 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; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
Value of TRUE : 1 Value of FALSE : 0