Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Menguasai Struktur C: Mengorganisir Data Kompleks dengan Efisien

Array memungkinkan untuk mendefinisikan tipe variabel yang dapat menampung beberapa item data dari jenis yang sama. Demikian pula struktur adalah tipe data yang ditentukan pengguna lainnya yang tersedia dalam C yang memungkinkan untuk menggabungkan item data dari jenis yang berbeda.

Struktur digunakan untuk merepresentasikan sebuah catatan. Misalnya Anda ingin melacak buku Anda di perpustakaan. Anda mungkin ingin melacak atribut berikut tentang setiap buku −

Mendefinisikan Struktur

Untuk mendefinisikan struktur, Anda harus menggunakan pernyataan struct. Pernyataan struct mendefinisikan tipe data baru, dengan lebih dari satu anggota. Format pernyataan struct adalah sebagai berikut −

 struct [structure tag] { member definition; member definition; ... member definition; } [one or more structure variables]; 

structure tag bersifat opsional dan setiap definisi anggota adalah definisi variabel normal, seperti int i; atau float f; atau definisi variabel valid lainnya. Pada akhir definisi struktur, sebelum titik koma akhir, Anda dapat menentukan satu atau lebih variabel struktur tetapi ini bersifat opsional. Berikut adalah cara Anda mendeklarasikan struktur Buku −

 struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } book; 

Mengakses Anggota Struktur

Untuk mengakses anggota apa pun dari struktur, kita menggunakan member access operator (.). Operator akses anggota dikodekan sebagai titik di antara nama variabel struktur dan anggota struktur yang ingin kita akses. Anda akan menggunakan kata kunci struct untuk mendefinisikan variabel dengan tipe struktur. Contoh berikut menunjukkan cara menggunakan struktur dalam program −

Live Demo
 #include <stdio.h> #include <string.h> struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; /* Declare Book1 of type Book */ struct Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* book 2 specification */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* print Book1 info */ printf( "Book 1 title : %s\n", Book1.title); printf( "Book 1 author : %s\n", Book1.author); printf( "Book 1 subject : %s\n", Book1.subject); printf( "Book 1 book_id : %d\n", Book1.book_id); /* print Book2 info */ printf( "Book 2 title : %s\n", Book2.title); printf( "Book 2 author : %s\n", Book2.author); printf( "Book 2 subject : %s\n", Book2.subject); printf( "Book 2 book_id : %d\n", Book2.book_id); return 0; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700 

Struktur sebagai Argumen Fungsi

Anda dapat melewatkan struktur sebagai argumen fungsi dengan cara yang sama seperti Anda melewatkan variabel atau pointer lainnya.

Live Demo
 #include <stdio.h> #include <string.h> struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; /* function declaration */ void printBook( struct Books book ); int main( ) { struct Books Book1; /* Declare Book1 of type Book */ struct Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* book 2 specification */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* print Book1 info */ printBook( Book1 ); /* Print Book2 info */ printBook( Book2 ); return 0; } void printBook( struct Books book ) { 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); } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407 Book title : Telecom Billing Book author : Zara Ali Book subject : Telecom Billing Tutorial Book book_id : 6495700 

Pointer ke Struktur

Anda dapat mendefinisikan pointer ke struktur dengan cara yang sama seperti Anda mendefinisikan pointer ke variabel lainnya −

 struct Books *struct_pointer; 

Sekarang, Anda dapat menyimpan alamat variabel struktur di variabel pointer yang didefinisikan di atas. Untuk menemukan alamat variabel struktur, tempatkan operator '&' sebelum nama struktur sebagai berikut −

 struct_pointer = &Book1; 

Untuk mengakses anggota dari struktur menggunakan pointer ke struktur tersebut, Anda harus menggunakan operator → sebagai berikut −

 struct_pointer->title; 

Mari kita tulis ulang contoh di atas menggunakan pointer struktur.

Live Demo
 #include <stdio.h> #include <string.h> struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; /* function declaration */ void printBook( struct Books *book ); int main( ) { struct Books Book1; /* Declare Book1 of type Book */ struct Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* book 2 specification */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* print Book1 info by passing address of Book1 */ printBook( &Book1 ); /* print Book2 info by passing address of Book2 */ printBook( &Book2 ); return 0; } void printBook( struct Books *book ) { 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); } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407 Book title : Telecom Billing Book author : Zara Ali Book subject : Telecom Billing Tutorial Book book_id : 6495700 

Bit Fields

Bit Fields memungkinkan pengemasan data dalam struktur. Ini sangat berguna ketika memori atau penyimpanan data terbatas. Contohnya termasuk −

C memungkinkan kita untuk melakukan ini dalam definisi struktur dengan menempatkan :bit length setelah variabel. Misalnya −

 struct packed_struct { unsigned int f1:1; unsigned int f2:1; unsigned int f3:1; unsigned int f4:1; unsigned int type:4; unsigned int my_int:9; } pack; 

Di sini, packed_struct berisi 6 anggota: Empat flag 1 bit f1..f3, sebuah tipe 4-bit dan sebuah my_int 9-bit.

C secara otomatis mempack bit field di atas secuma mungkin, asalkan panjang maksimum dari field kurang dari atau sama dengan panjang kata integer dari komputer. Jika ini bukan kasusnya, maka beberapa compiler mungkin mengizinkan overlap memori untuk field sementara yang lain akan menyimpan field berikutnya di kata berikutnya.


Bahasa C

  1. Struktur vs Kelas C++: Panduan Praktis untuk Pengembang Terintegrasi
  2. Semafor dalam Nucleus RTOS: Layanan Utilitas & Struktur Data
  3. Ulasan Buku: Digitise or Die – Blueprint Transformasi Berbasis IoT
  4. Mempertahankan Kemanusiaan di Era Teknologi Mengganggu
  5. Merevolusi Penyimpanan Data: Nanostruktur Magnetik Generasi Mendatang dengan Mantel Ketidaklihatan
  6. 17 Buku Pemrograman Terbaik untuk Meningkatkan Keterampilan Coding pada 2021
  7. Struktur Data Java: Menjelajahi Kelas Inti & Framework Koleksi
  8. Typedef C Dijelaskan: Sederhanakan Kode Anda dengan Nama Tipe Kustom
  9. Struktur Data C++: Membangun Program Efisien dengan Array, Struct, dan Lainnya
  10. Memahami Struktur C#: Cara Mendefinisikan dan Menggunakan Tipe Nilai