C 什么是';标签';联合与结构的关系如何?
在这里,正如我所知,“数据”是一个标签,它是可选的。到底是什么?在声明结构或联合时添加标记有什么好处 在这里,正如我所知,“数据”是一个标签,它是可选的 不,这里没有标签。标记指示对联合的正确解释。例如,如果您的代码分配C 什么是';标签';联合与结构的关系如何?,c,visual-studio-2010,visual-studio,visual-c++,C,Visual Studio 2010,Visual Studio,Visual C++,在这里,正如我所知,“数据”是一个标签,它是可选的。到底是什么?在声明结构或联合时添加标记有什么好处 在这里,正如我所知,“数据”是一个标签,它是可选的 不,这里没有标签。标记指示对联合的正确解释。例如,如果您的代码分配data.f并将数据传递给另一个函数,并且它读取data.str,那么您的程序将出现大规模故障,可能导致程序崩溃。工会本身没有为函数提供足够的信息来知道使用哪个工会成员 通过添加标记,可以指示哪种解释是正确的。例如: union Data { int i; float
data.f
并将数据传递给另一个函数,并且它读取data.str
,那么您的程序将出现大规模故障,可能导致程序崩溃。工会本身没有为函数提供足够的信息来知道使用哪个工会成员
通过添加标记,可以指示哪种解释是正确的。例如:
union Data
{
int i;
float f;
char str[20];
} data;
structure Data
{
int i;
float f;
char str[20];
} data;
其中type是标记,并指示联合中存储的值的类型。读取taggeddata
的函数现在可以使用switch
语句并访问正确的联合成员
标记数据结构的另一个常见名称是。与…相比
struct TaggedData
{
int type;
union Data value;
} taggeddata;