Perbedaan Struct Dan Typedef C++

Dalam struktur bahasa C digunakan untuk mengelompokkan berbagai jenis variabel dengan nama yang sama.Pengelompokan ini bertujuan untuk mempermudah dalam mengenali setiap variable yang memiliki keterkaitan satu dengan lainnya. Jika dilihat struct ini dapat digunakan sebagai database yang memiliki  kumpulan variable yang tersusun sesuai dengan fungsinya.
 Misalnya  bisa membuat struktur “telepon”: yang terdiri dari string (yang digunakan untuk menyimpan nama orang) dan integer (yang digunakan untuk menyimpan nomor telepon). Sehingga pemrogram akan mudah mengenali keterkaitan setiap variable ketika membuat program yang lebih kompleks.
Sebagai contoh program  dengan menggunakan struct
…………………………..
struct telepon
{
char nama;
char alamat;
int nomor;
};
………………………………

Missal  membuat struct telepon. Didalam struct ini  memiliki beberapa variable dengan tipe yang berbeda. Variable nama dan alamat beritipe character karena kedua variable ini berisi character. Kemudian mendeklarasikan variable nomor bertipe integer.
……………………………….
int main ()
{
struct  telepon detailtelpon;
//inisialisasi struct telpon dalam fungsi main
//pemanggilan struct
return 0;
}
……………………………..

Catatan: Indeks sekarang menjadi variabel dari jenis telepon.
Untuk mengakses anggota struktur telepon,  harus menggunakan titik antara nama struktur dan nama variabel (variabel:. Nama atau nomor)
struct telepon
{
char * nama;
int nomor;
};

int main ()
{
struct  telepon index;
index.nama = “Robi Wahyudi”;
index.nomor = 12345;
printf (“Nama:% s n”, index.nama);
printf (“Nomor telepon:% d n”, index.nomor);

return 0;
}

TYPEDEF
C + + memungkinkan definisi jenis kita sendiri berdasarkan jenis lainnya data yang ada. Kita bisa melakukan ini dengan menggunakan kata kunci typedef, yang formatnya adalah:
typedef  tipe_data  nama_data;

typedef tidak menciptakan berbagai jenis. Ini hanya menciptakan sinonim dari jenis yang ada. Itu berarti bahwa jenis myword dapat dianggap baik WORD atau int unsigned, karena keduanya sebenarnya tipe yang sama.
typedef dapat berguna untuk menentukan alias untuk jenis yang sering digunakan dalam program. Hal ini juga berguna untuk menentukan jenis ketika adalah mungkin bahwa kita akan perlu untuk mengubah jenis dalam versi program kami, atau jika ingin menggunakan jenis memiliki nama yang terlalu panjang atau membingungkan.
TYPEDEF DALAM STRUCT
Penulisan struct juga dapat berbeda yakni menggunakan typedef. Dimana dalam penulisan ini memiliki perbedaan jika pada struct biasa  mendeklarasikan “struct” diawal nama baru. Disini menggunakan “typedef”.
typedef struct
{
char kode[5];
char nama[20];
int jml;
float harga;
} psd;
//pendefenisian nama variabel baru
psd persediaan_barang;
……………………..
Bahasa umum typedef adalah menggunakan kedua:
 typedef struct X {int x;} X;
penulisa dalam bahasa c++ dibuat berbeda keduanya antara typedef dengan struct. Jika digambarkan sebagai berikut.
struct S {int x;};
typedef struct S S;
Pada baris pertama  mendefinisikan S identifier dalam ruang nama struct (bukan dalam arti C + +).  dapat menggunakannya dan mendefinisikan variabel atau argumen fungsi Baru Ditetapkan dengan mendefinisikan jenis argumen sebagai jenis struct S:
void f (struct argumen S); / / struct diperlukan di sini
Baris kedua menambahkan tipe S alias dalam ruang nama global dan dengan demikian memungkinkan  untuk hanya menulis:
void f (S argumen); / / struct kata kunci tidak lagi diperlukan
Perhatikan bahwa karena ruang identifier nama keduanya berbeda, baik dalam mendefinisikan struct dan ruang global yang S bukanlah kesalahan, karena tidak Mendefinisikan identifier yang sama, melainkan menciptakan tempat yang berbeda dalam identifier yang berbeda.

Dapat mendefinisikan suatu fungsi dengan nama yang sama dari struct sebagai Identifier yang disimpan di ruang yang berbeda, tapi  tidak bisa mendefinisikan fungsi dengan nama yang sama sebagai typedef seperti yang bertabrakan Identifier.

Dalam C + +, itu adalah sedikit berbeda sebagai aturan telah berubah secara halus untuk menemukan simbol. Namun, meskipun dua berbeda C + + ruang pengenal, tapi tidak seperti di C, ketika  mendefinisikan simbol hanya dalam ruang kelas identifier,  tidak diharuskan untuk memberikan kata kunci struct / class:

Perbedaan Struct Dan Typedef C++ | Admin | 4.5

Leave a Reply

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

You must be logged in to post a comment.