其他
用C语言编程,如何节省存储空间?
作者:十月天文
C语言的共用体union
什么意思呢,就是在同一块内存存储可以定义多个数据类型,但是在使用的时候,只有一个变量有效。
这里就有一个问题,变量有大有小呀,对的,所以这个时候共用体的空间为内部变量最大占用空间的值。
如此这般,共用体就可以通过共享存储空间,来避免当前没有被使用的变量所造成的存储空间的浪费。
共用体的成员可以使用任何数据类型,但是一个共用体所占用的存储空间的字节总数,必须保证至少足以能够容纳其占用空间字节数最大的成员。并且共用体每次只允许访问一个成员,也就是一种数据类型,确保按照正确的数据类型来访问共用体中的数据,就是你的责任了。
先看看union的格式:
union [tag]
{
member definition;
member definition;
...
member definition;
} [variables];
union为类型变量; tag为共用体的标记; member definition为变量的定义;
举个例子:
union test
{
int i;
float f;
double d;
char str[20];
} data;
通过这个例子可以看到,这个结构体的大小是多少呢?可以通过程序来确认一下。
ID:也就是学号,唯一区别码,用整型表示 Name:姓名,用字符串表示 Age:年龄,用整型表示 Sex:性别,用字符串表示
#include <stdio.h>
#include <string.h>
union test
{
int i;
float f;
double d;
char str[20];
};
int main( )
{
union test data;
printf( "data size : %d\n", sizeof(data));
return 0;
}
-END-
推荐阅读
【01】“不敢精通”的C++的高级工程师要学会什么?【02】重磅干货||五万字长文总结:C/C++ 知识(上)【03】重磅干货||五万字长文总结:C/C++ 知识(下)【04】C++ 如何避免内存泄露【05】C/C++应用:深入理解Socket网络通信