首页 >后端开发 >C++ >C 中'void”的大小是多少?

C 中'void”的大小是多少?

Susan Sarandon
Susan Sarandon原创
2024-11-19 02:09:02672浏览

What Is the Size of `void` in C?

深入探究 Void 之谜:大小及超越

代表空类型的 void 概念经常激发程序员的好奇心。一个基本问题出现了:空洞的大小是多少?

理解空洞的本质

尝试确定空洞的大小使我们得到一个关键的认识:空洞没有尺寸。它缺乏像其他数据类型那样占用空间的内在特征。这种固有的空性阻止了它被声明为变量。

考虑这个例子:

void n; // Compilation error

GCC 的意外行为

令人惊讶的是,GNU C 编译器(GCC) 使用 sizeof(void) 时返回大小 1。这似乎与虚空没有大小的观念相矛盾。然而,这种行为并不是 void 本质的真实反映,而是 GCC 特有的怪癖。

Void 指针和内存分配

具有特殊类型的 Void 指针void * 通常用于存储地址,无论其基础数据类型如何。当使用malloc(sizeof(void))分配内存时,没有分配实际的内存。相反,返回一个空指针。

递增空指针

示例中的指针 p 引用空地址。递增 p (p ) 通常会按其指向的数据类型的大小递增其值。然而,由于 p 是一个 void 指针,它的增量操作是未定义的,并且在不同的编译器中有所不同。

以上是C 中'void”的大小是多少?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn