Rumah > pembangunan bahagian belakang > C++ > Apakah Saiz \'kosong\' dalam C?

Apakah Saiz \'kosong\' dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-19 17:25:03
asal
838 orang telah melayarinya

What is the Size of

Soalan: Memahami Saiz "void" yang Tidak Ditakrifkan

Dalam pengaturcaraan C, kata kunci "void" mewakili ketiadaan jenis. Ini menimbulkan persoalan: apakah saiz "kosong"?

Jawapan:

Jenis "kosong" tidak mempunyai saiz yang ditentukan dalam C. Ia bukan jenis yang sah untuk objek atau penunjuk, jadi cuba menggunakannya seperti itu akan membawa kepada ralat penyusunan. Khususnya, pernyataan:

void n;
Salin selepas log masuk

tidak sah kerana ia cuba mengisytiharkan pembolehubah jenis kekosongan, yang tidak dibenarkan.

Pelanjutan: Peruntukan dan Aritmetik Penunjuk dengan " void" Pointer

Walaupun "void" tidak mempunyai saiz, ia boleh digunakan sebagai jenis untuk petunjuk. Walau bagaimanapun, penunjuk sedemikian tidak menunjuk kepada mana-mana jenis atau saiz data tertentu.

Pernyataan:

void *p = malloc(sizeof(void));
Salin selepas log masuk

menghasilkan ralat masa kompilasi kerana cuba memperuntukkan memori untuk "kosong "jenis mengarut. Fungsi malloc memerlukan jenis data yang sah untuk memperuntukkan memori.

Dalam GCC, ungkapan sizeof(void) secara mengejutkan menilai kepada 1. Walaupun ini mungkin kelihatan seperti ia memberikan saiz kepada "kosong", ia hanyalah perincian pelaksanaan yang tidak boleh dipercayai.

Selain itu, aritmetik penunjuk p pada penuding "kosong" ialah tidak ditentukan dan tidak boleh digunakan. Ini kerana jenis data yang ditunjuk oleh p tidak diketahui, menjadikannya mustahil untuk menentukan maksud kenaikan penunjuk.

Atas ialah kandungan terperinci Apakah Saiz \'kosong\' dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan