首页 > 后端开发 > C++ > 正文

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

Susan Sarandon
发布: 2024-11-19 02:09:02
原创
627 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板