union 是特殊数据类型,可以将不同的数据类型存储在同一存储位置。
要定义Union,您必须以与定义结构相似的方式使用并集union语句。
union [union tag] { member definition; member definition; ... member definition; } [one or more union variables];
union标签tag是可选的,每个成员定义都是一个普通变量定义,如int i;或浮动f;在并集union定义的末尾,在最后一个分号之前,您可以指定一个或多个并集变量,但这是可选的。这是定义名为Data的联合类型的方法,该类型具有三个成员 i , f 和 str -
union Data { int i; float f; char str[20]; } data;
Data 类型的变量可以存储整数,浮点数或字符串,这意味着可以使用一个变量来存储多种类型的数据。
import std.stdio; union Data { int i; float f; char str[20]; }; int main( ) { Data data; writeln( "Memory size occupied by data : ", data.sizeof); return 0; }
编译并执行上述代码后,将产生以下输出-
Memory size occupied by data : 20
您将使用union关键字定义union类型的变量。
以下示例说明了union的用法-
import std.stdio; union Data { int i; float f; char str[13]; }; void main( ) { Data data; data.i=10; data.f=220.5; data.str="D Programming".dup; writeln( "size of : ", data.sizeof); writeln( "data.i : ", data.i); writeln( "data.f : ", data.f); writeln( "data.str : ", data.str); }
编译并执行上述代码后,将产生以下输出-
size of : 16 data.i : 1917853764 data.f : 4.12236e+30 data.str : D Programming
在这里,您可以看到工会的 i 和 f 的值已变更,因为分配给变量的最终值已占用内存位置。
链接:https://www.learnfk.comhttps://www.learnfk.com/d-programming/d-programming-unions.html
来源:LearnFk无涯教程网
现在让我们再次查看同一示例,其中一次将使用一个变量,这是拥有Union的主要目的-
import std.stdio; union Data { int i; float f; char str[13]; }; void main( ) { Data data; writeln( "size of : ", data.sizeof); data.i=10; writeln( "data.i : ", data.i); data.f=220.5; writeln( "data.f : ", data.f); data.str="D Programming".dup; writeln( "data.str : ", data.str); }
编译并执行上述代码后,将产生以下输出-
size of : 16 data.i : 10 data.f : 220.5 data.str : D Programming
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)