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

Apakah Saiz \'kosong\' dalam C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 17:25:03845semak imbas

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;

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));

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!

Kenyataan:
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