Rumah > masalah biasa > Cara menggunakan kesatuan dalam bahasa c

Cara menggunakan kesatuan dalam bahasa c

百草
Lepaskan: 2023-09-27 11:00:29
asal
2697 orang telah melayarinya

Penggunaan kesatuan dalam bahasa C ialah jenis data khas yang membolehkan jenis data yang berbeza disimpan di lokasi memori yang sama Penggunaan kesatuan boleh membantu kami menjimatkan ruang memori dan boleh beralih antara jenis data yang berbeza. Apabila menggunakan kesatuan, anda perlu ambil perhatian bahawa ahli yang sepadan adalah sah dan hanya seorang ahli boleh diakses pada masa yang sama.

Cara menggunakan kesatuan dalam bahasa c

Kesatuan dalam bahasa C ialah jenis data khas yang membolehkan jenis data yang berbeza disimpan di lokasi memori yang sama. Penggunaan kesatuan boleh membantu kami menjimatkan ruang memori dan menjadikannya mudah untuk menukar antara jenis data yang berbeza.

1. Tentukan kesatuan:

Dalam bahasa C, kita boleh menggunakan kata kunci kesatuan untuk menentukan jenis kesatuan. Kesatuan ditakrifkan sama dengan struktur, tetapi semua ahli dalam kesatuan berkongsi ruang ingatan yang sama. Sintaks kesatuan adalah seperti berikut:

   union union_name {
       member_type member1;
       member_type member2;
       // ...
   };
Salin selepas log masuk

Di mana, union_name ialah nama kesatuan, ahli_type ialah jenis data ahli, ahli1, ahli2, dll. ialah ahli kesatuan.

Contoh:

   union Data {
       int i;
       float f;
       char str[20];
   };
Salin selepas log masuk

2. Akses ahli kesatuan:

Kita boleh menggunakan pengendali titik (.) untuk mengakses ahli kesatuan. Memandangkan ahli kesatuan berkongsi ruang memori yang sama, hanya seorang ahli boleh diakses pada masa yang sama. Sintaks untuk mengakses ahli kesatuan adalah seperti berikut:

   union_name.member_name
Salin selepas log masuk

Contoh:

   union Data data;
   data.i = 10;
   printf("data.i = %d\n", data.i);
   data.f = 3.14;
   printf("data.f = %f\n", data.f);
   strcpy(data.str, "Hello");
   printf("data.str = %s\n", data.str);
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan kesatuan bernama Data dan mencipta pembolehubah bernama data. Kami boleh mengakses ahli kesatuan yang berbeza melalui data.i, data.f dan data.str.

3. Saiz kesatuan:

Saiz kesatuan bergantung pada saiz ahli terbesarnya. Memandangkan semua ahli kesatuan berkongsi ruang memori yang sama, saiz kesatuan boleh cukup besar untuk menampung ahli terbesar.

Contoh:

   union Data {
       int i;
       float f;
       char str[20];
   };
   printf("sizeof(union Data) = %lu\n", sizeof(union Data));
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan operator sizeof untuk mendapatkan saiz Data kesatuan. Memandangkan saiz jenis apungan biasanya lebih besar daripada saiz tatasusunan int dan char, saiz data kesatuan akan sama dengan saiz apungan.

4. Aplikasi kesatuan:

Kesatuan sering digunakan dalam situasi berikut:

- Jimat ruang memori: Apabila hanya satu daripada berbilang ahli akan digunakan, kesatuan boleh digunakan untuk menjimatkan ruang memori.

- Penukaran jenis: Anda boleh menggunakan kesatuan untuk menukar antara jenis data yang berbeza, seperti menukar integer kepada nombor titik terapung, menukar nombor titik terapung kepada tatasusunan aksara, dsb.

Contoh:

   union Convert {
       int i;
       float f;
   };
   union Convert convert;
   convert.i = 10;
   printf("convert.i = %d\n", convert.i);
   printf("convert.f = %f\n", convert.f);
   convert.f = 3.14;
   printf("convert.i = %d\n", convert.i);
   printf("convert.f = %f\n", convert.f);
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan kesatuan bernama Convert, yang mengandungi ahli i jenis int dan ahli f jenis apungan. Dengan mengubah suai seorang ahli kesatuan, kita boleh memperoleh nilai yang sepadan dalam ahli lain, dengan itu mencapai penukaran jenis.

Perlu diambil perhatian bahawa menggunakan kesatuan memerlukan berhati-hati kerana ahli kesatuan berkongsi ruang memori yang sama. Selepas mengubah suai nilai satu ahli, nilai ahli lain akan ditimpa. Oleh itu, apabila menggunakan kesatuan, anda perlu memastikan bahawa ahli yang sepadan adalah sah dan hanya seorang ahli boleh diakses pada masa yang sama.

Untuk meringkaskan, kesatuan dalam bahasa C ialah jenis data khas yang membolehkan jenis data yang berbeza disimpan dalam lokasi memori yang sama. Dengan mentakrifkan kesatuan dan mengakses ahlinya, kami boleh menjimatkan ruang memori dan menukar antara jenis data yang berbeza. Apabila menggunakan kesatuan, anda perlu ambil perhatian bahawa ahli yang sepadan adalah sah dan hanya seorang ahli boleh diakses pada masa yang sama.

Atas ialah kandungan terperinci Cara menggunakan kesatuan dalam bahasa c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan