当前位置: 首页 > article >正文

嵌入式C语言面试相关知识——结构体和联合体

嵌入式C语言面试相关知识——结构体和联合体

  • 一、博客声明
  • 二、结构体
    • 1、数组概念
    • 2、如何声明定义数组
    • 3、数组特点
  • 三、联合体
    • 1、联合体概念
    • 2、如何声明定义联合体
    • 3、联合体特点
  • 四、两者区别

一、博客声明

  又是一年一度的秋招,怎么能只刷笔试题目呢,面试题目也得看,想当好厂的牛马其实也不容易呀O(∩_∩)O。注意:这篇博客大部分是来自网上的资源,通过自问或者他问,然后寻找答案,为了加深印象,总结或者抄一遍。


二、结构体

1、数组概念

  结构体是一种聚合数据类型,它允许将多个类型不同的变量组成一个整体。每个成员都有自己的内存空间,并且可以同时访问。

2、如何声明定义数组

  常用的就是基本结构体声明和使用typedef进行声明。

struct Person {
	char name[50];
	int age;
};						//结构体类型的定义

struct Person p1;		//定义结构体变量

下面是使用typedef进行定义/

typedef struct {
	char name[50];
	int age;
} Person;

Person p1;

3、数组特点

  • 独立的内存空间: 结构体中的每个成员都有自己独立的内存位置,存储多个不同类型的数据。
  • 按顺序存储: 结构体中的成员按照定义的顺序排列在内存中。
  • 访问方式: 使用成员访问符号.来访问结构体的成员。
  • 内存大小: 结构体的总大小是所有成员大小之和,但可能存在内存对齐而导致的填充。

三、联合体

1、联合体概念

  联合体是一种特殊的数据类型,允许多个成员共用一块内存空间。即所有成员的值存储在同一个内存位置,任意时刻只能存储一个成员的数据。

2、如何声明定义联合体

union MyUnion {
	int a;
	float b;
	char c;
};						//联合体类型的定义

union MyUnion myunion;		//定义联合体变量

下面是使用typedef进行定义/

typedef union {
	int a;
	float b;
	char c;
} Data;						//联合体类型的定义

Data data;

3、联合体特点

  • 共用内存空间: 联合体的所有成员共享一块内存,只有最大的那个成员决定联合体的大小。
  • 只能存储一个值: 因为所有成员共享内存,所以一个时间点只能存储一个成员的值,存储一个新成员会覆盖之前的值。
  • 访问方式: 与结构一样用.符号来访问联合体成员。
  • 内存大小: 占用内存最大的变量。

四、两者区别

特性结构体 (struct)联合体 (union)
内存分配每个成员有独立的内存空间所有成员共用同一块内存
大小大小是所有成员的大小决定,具体看如何对齐取决于最大成员的大小
同时存储可以同时存储多个成员的数据任意时刻只能存储一个成员的数据
数据访问各成员可以独立访问,互补影响访问一个成员会覆盖其他成员的数据
典型用途用于存储一组相关的数据用于存储多种类型的值,任意时刻只存一种
内存使用效率内存利用率相对较低,占用空间多内存利用率高,但风险大,数据容易被覆盖

http://www.kler.cn/news/355186.html

相关文章:

  • 模块编译成功,但是python运行找不到依赖库Nomodule named ‘ ‘
  • 定期备份MYSQL数据库(Linux)
  • 2024 蚂蚁SEO蜘蛛池对网站收录的帮助
  • 机器学习核心:监督学习与无监督学习
  • Ansible Roles与优化
  • Java开发中知识点整理
  • 【vue】解决vue Admin Template打包是空白的页面
  • wiki搭建
  • 爬虫逆向-js进阶(续写,搭建网站)
  • 深度学习架构:MOE架构
  • NVR录像机汇聚管理平台5个开源免费的多个NVR同时管理(网络视频录像机)系统
  • 【关系型数据库informix底层原理一】
  • ARM嵌入式学习--第三天
  • HUAWEI_HCIA_实验指南_Lib2.1_交换机基础配置
  • cleanmymacX破解版下载 cleanmymacx激活码永久免费 mac电脑免费垃圾清理软件推荐
  • 【web】JDBC
  • 浏览器缓存得学习
  • 【MySQL】MySQL的简单了解详解SQL分类数据库的操纵方法
  • 电脑技巧:优化Edge浏览器占用C盘空间的解决方案
  • linux中vi编辑器中进入编辑模式的三种进入方式a,i,o,A,I,O六种方式的区别