Bahasa C
Misalkan program C Anda berisi sejumlah variabel TRUE/FALSE yang dikelompokkan dalam struktur yang disebut status, sebagai berikut −
struct { unsigned int widthValidated; unsigned int heightValidated; } status;
Struktur ini membutuhkan 8 byte ruang memori tetapi sebenarnya, kita akan menyimpan 0 atau 1 di setiap variabel. Bahasa pemrograman C menawarkan cara yang lebih baik untuk memanfaatkan ruang memori dalam situasi seperti itu.
Jika Anda menggunakan variabel seperti itu di dalam struktur, maka Anda dapat menentukan lebar variabel yang memberi tahu kompiler C bahwa Anda hanya akan menggunakan jumlah byte tersebut. Sebagai contoh, struktur di atas dapat ditulis ulang sebagai berikut −
struct { unsigned int widthValidated : 1; unsigned int heightValidated : 1; } status;
Struktur di atas membutuhkan 4 byte ruang memori untuk variabel status, tetapi hanya 2 bit yang akan digunakan untuk menyimpan nilai.
Jika Anda akan menggunakan hingga 32 variabel masing-masing dengan lebar 1 bit, maka struktur status juga akan menggunakan 4 byte. Namun begitu Anda memiliki 33 variabel, itu akan mengalokasikan slot memori berikutnya dan akan mulai menggunakan 8 byte. Mari kita periksa contoh berikut untuk memahami konsep −
Demo Langsung#include <stdio.h> #include <string.h> /* define simple structure */ struct { unsigned int widthValidated; unsigned int heightValidated; } status1; /* define a structure with bit fields */ struct { unsigned int widthValidated : 1; unsigned int heightValidated : 1; } status2; int main( ) { printf( "Memory size occupied by status1 : %d\n", sizeof(status1)); printf( "Memory size occupied by status2 : %d\n", sizeof(status2)); return 0; }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Memory size occupied by status1 : 8 Memory size occupied by status2 : 4
Deklarasi bidang bit memiliki bentuk berikut di dalam struktur
struct { type [member_name] : width ; };
Tabel berikut menjelaskan elemen variabel bidang bit −
No.Pr. | Elemen &Deskripsi |
---|---|
1 | ketik Tipe integer yang menentukan bagaimana nilai bit-field diinterpretasikan. Jenisnya mungkin int, int masuk, atau int tidak ditandatangani. |
2 | nama_anggota Nama bidang bit. |
3 | lebar Jumlah bit dalam bidang bit. Lebar harus kurang dari atau sama dengan lebar bit dari jenis yang ditentukan. |
Variabel yang didefinisikan dengan lebar yang telah ditentukan sebelumnya disebut bidang bit . Bidang bit dapat menampung lebih dari satu bit; misalnya jika Anda membutuhkan variabel untuk menyimpan nilai dari 0 hingga 7, maka Anda dapat mendefinisikan bidang bit dengan lebar 3 bit sebagai berikut −
struct { unsigned int age : 3; } Age;
Definisi struktur di atas menginstruksikan kompiler C bahwa variabel usia hanya akan menggunakan 3 bit untuk menyimpan nilainya. Jika Anda mencoba menggunakan lebih dari 3 bit, maka itu tidak akan memungkinkan Anda untuk melakukannya. Mari kita coba contoh berikut
Demo Langsung#include <stdio.h> #include <string.h> struct { unsigned int age : 3; } Age; int main( ) { Age.age = 4; printf( "Sizeof( Age ) : %d\n", sizeof(Age) ); printf( "Age.age : %d\n", Age.age ); Age.age = 7; printf( "Age.age : %d\n", Age.age ); Age.age = 8; printf( "Age.age : %d\n", Age.age ); return 0; }
Ketika kode di atas dikompilasi akan dikompilasi dengan peringatan dan ketika dijalankan, menghasilkan hasil sebagai berikut −
Sizeof( Age ) : 4 Age.age : 4 Age.age : 7 Age.age : 0
Bahasa C
Pointer memberikan banyak kemungkinan untuk fungsi C yang kami batasi untuk mengembalikan satu nilai. Dengan parameter pointer, fungsi kita sekarang dapat memproses data aktual daripada salinan data.Untuk mengubah nilai variabel yang sebenarnya, pernyataan panggilan meneruskan alamat ke parameter po
Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan operasi. Saat Anda memanggil System.out.println() metode, misalnya, sistem benar-benar mengeksekusi beberapa pernyataan untuk menampilkan pesan di konsol. Sekarang Anda akan mempelajari cara membuat metode Anda sendir
Komponen dan persediaan WINGONEER Gaya Baru Inframerah IR Wireless Remote Control Sensor Modul Kit untuk Arduino × 1 Driver Motor Stepper Jembatan H Ganda SainSmart L298N × 1 Kit Sasis Mobil Robot 4WD × 1 Arduino UNO × 1 Alat dan mesin yang diperlukan
Manufaktur adalah sesuatu yang dunia kita andalkan. Pada 2018, industri manufaktur menyumbang hampir 16% dari PDB global. Sayangnya, industri manufaktur terpukul selama pandemi COVID-19 – nama yang diberikan untuk virus yang disebabkan oleh SARS-CoV-2. Banyak pabrik harus ditutup dan mulai dibuka ke