sizeof操作符返回1bytes的VOID操作符。

问题描述 投票:0回答:1

我正在研究C++中的sizeof操作符。我遇到了一个意想不到的语义错误。我读到void数据类型没有内存大小。但是,在我的程序中,sizeof操作符对一个void数据类型返回1。这怎么可能呢?

#include<iostream>
int main()
{
     std::cout<<"Void: "<<sizeof(void)<<" bytes\n";
     return 0;
}

我使用CodeBlocks编写代码,我的操作系统是Windows 10 x64。

c++ operators sizeof
1个回答
3
投票

这是一个 海湾合作委员会延期:

在GNU C中,支持在指针上进行加法和减法运算。void 和函数的指针上。这是通过处理一个 void 或函数为1的。

这样做的一个结果是 sizeof 也允许在 void 和函数类型,并返回1。

选项 -Wpointer-arith 如果使用了这些扩展名,则请求发出警告。

© www.soinside.com 2019 - 2024. All rights reserved.