相关疑难解决方法(0)

可以有一个占用0个字节的C++类型

我正在尝试声明一个占用零字节的C++变量.它在一个联合中,我以int [0]的类型开始.我不知道这是否实际上是零字节(虽然sizeof(int [0])是0).我需要一种更好的方法来声明一个0字节类型,并希望可以将其类型化为nullType或emptyType.变量在一个联合中,所以无论如何最终都会保留内存.我尝试了无效的机会,但是C++抱怨道.我正在使用Ubuntu 10.10,包含当前版本的内核,以及最新的GCC.这是联盟:

union RandomArgumentTypesFirst
{
    uint uintVal;
    nullType nullVal;
}
Run Code Online (Sandbox Code Playgroud)

这是typedef:

typedef int[0] nullType;
Run Code Online (Sandbox Code Playgroud)

编译器对typedef说了这个:

error: variable or field ‘nullVal’ declared voidmake[2]:
Run Code Online (Sandbox Code Playgroud)

当我输入时int[0],它有效.有什么建议?

编辑:正如@fefe在评论中所说,int[0]可能由编译器作为扩展提供.GCC的网站说默认情况下编译器有很多扩展.

c++ null sizeof void

7
推荐指数
3
解决办法
3978
查看次数

标签 统计

c++ ×1

null ×1

sizeof ×1

void ×1