我正在研究C++中的sizeof操作符。我遇到了一个意想不到的语义错误。我读到void数据类型没有内存大小。但是,在我的程序中,sizeof操作符对一个void数据类型返回1。这怎么可能呢?
#include<iostream>
int main()
{
std::cout<<"Void: "<<sizeof(void)<<" bytes\n";
return 0;
}
我使用CodeBlocks编写代码,我的操作系统是Windows 10 x64。
这是一个 海湾合作委员会延期:
在GNU C中,支持在指针上进行加法和减法运算。
void
和函数的指针上。这是通过处理一个void
或函数为1的。这样做的一个结果是
sizeof
也允许在void
和函数类型,并返回1。选项
-Wpointer-arith
如果使用了这些扩展名,则请求发出警告。