共用体简单应用,用共用体验证机器的大端序和小端序【C】(w)

共用体简单应用, 用共用体验证机器的大端序和小端序

共用体简单应用

应用需求:
当需要把不同类型的变量存放到同一段内存单元或对同一段内存单元的数据按不同类型处理则需要使用共用体数据结构。

信息存储

在这里插入图片描述

#include<stdio.h>

 struct Staff
{
	 int num;
	char name[30];
	char job;
	char sex;
	union
	{
		int grade;
		char position[50];
	}gorp;
};

int main()
{
	struct Staff s[2];
	for (int i = 0; i < 2; i++)
	{
		printf("name:");
		scanf("%s",s[i].name);
		getchar();
		printf("num:");
		scanf("%d", &s[i].num);
		getchar();
		printf("sex:");
		scanf("%c", &s[i].sex);
		getchar();
		printf("job:");
		scanf("%c",&(s[i].job));
		if (s[i].job == 't')
		{
			printf("position:");
			scanf("%s",s[i].gorp.position);
		}
		else
		{
			printf("grade:");
			scanf("%d",&s[i].gorp.grade);
		}
	}

	printf("\n================\n");
	for (int i = 0; i < 2; i++)
	{
		printf("name:%s\n",s[i].name);
		printf("num:%d\n", s[i].num);
		printf("sex:%c\n",s[i].sex);
		printf("job:%c\n", s[i].job);
		if (s[i].job == 't')
		{
			printf("job:%s\n",s[i].gorp.position);
		}
		else
		{
			printf("%d\n", s[i].gorp.grade);
		}
	}
	return 0;
}

打印结果为:
在这里插入图片描述

用共用体验证机器的大端存储和小端存储

关于大端存储和小端存储我们已经在之前的博客进行说明,这里只是多提供一种验证大段存储和小端存储的方式。

#include <stdio.h>

union
{
	char ch;
	int i;
}un;

int main()
{
	un.i = 0x11223344;
	printf("%x\n",un.ch);
	if (un.ch == 0x44)
		printf("小端序\n");
	else
		printf("大端序\n");
	return 0;
}

打印结果为:
在这里插入图片描述

发布了84 篇原创文章 · 获赞 71 · 访问量 9133

猜你喜欢

转载自blog.csdn.net/qq_43648751/article/details/104084609