理解 Void 的大小
在 C 编程中,关键字 void 表示没有大小的数据类型。这种奇特的属性使其不适合变量声明或内存分配任务。
编译错误:空指针分配
您提供的代码片段:
会导致编译错误,因为 sizeof(void) 是 C 中的无效表达式。 void 类型不携带大小信息,使该操作未定义,因此被编译器拒绝。
GCC 中的 Sizeof(void):异常
令人惊讶的是,sizeof(void) 表达式在 GNU 中编译C 编译器(GCC)。它的计算结果为 1,表示内存的一个字节。然而,这种行为不是标准的,并且在不同的编译器和体系结构中有所不同。
使用 Void 指针递增指针
关于用 p 递增 p 的问题提出了一个有趣的概念。由于 void 没有大小,因此 p 操作变得毫无意义。指针 p 并不指向任何特定的数据类型或值,因此递增它不会对其值产生任何影响。
综上所述,C 中的 void 是一种没有大小的数据类型,不能用于内存分配或变量声明。 sizeof(void) 表达式通常无效,但在特定编译器(如 GCC)中的行为可能有所不同。由于其大小不足,尝试用 p 增加 void 指针没有任何有意义的结果。
以上是为什么 `sizeof(void)` 在 C 中无效,但在 GCC 中计算结果为 1?的详细内容。更多信息请关注PHP中文网其他相关文章!