0
点赞
收藏
分享

微信扫一扫

嵌入式八股文6

1.内存映射的原理

将一块内存空间映射到不同的进程空间中

2.define和const的区别

1.define是预处理指令,用于创建符号常量。const是C和C++的关键字,用于创建具有常量值的变量,本质是只读变量。

2.define在预处理阶段执行。const在编译阶段执行。

3.define没有类型检查,仅进行文本替换。const有类型检查,可以与变量类型关联。

3.数组和链表的区别

1.数组内存连续,链表内存不连续。

2.数组访问速度比链表快

3.链表增加删除操作比数组快

4.指针和引用的区别

1.指针:指针是一个变量,保存着内存地址。引用:引用是已存在变量的别名,没有自己的内存地址。

2.指针可以具有空值(NULL),引用不能为空,必须在初始化时指向一个有效的对象。

3.可以修改指针的指向,可以将指针重新赋值为另一个地址。一旦引用被初始化,它始终指向同一个对象,不可更改。

4.指针需要额外的内存空间来存储地址值。引用不需要额外的内存空间,因为它是对已存在变量的别名。

5.解释一下QT的信号与槽

信号与槽是一种用于实现对象之间通信和事件处理的机制。

6.IIC为什么要加上拉电阻,为什么使用开漏输出

上拉电阻

1.当IIC总线在空闲状态,SDA和SCL需要处于高电平状态。

2.开漏输出无法输出高电平,使用上拉电阻可以完成高低电平之间的转换。

开漏输出

1.假如使用推挽输出可能导致器件的烧毁

2.实现线与功能

7.MQTT的通信过程

1.创建客户端

2.指定IP地址和端口号

3.进行连接

4.发布主题或者订阅主题

5.数据传输

6.断开连接

8.在Linux中怎么实现同步

1.互斥锁

2.信号量

3.条件变量

9.TCP和UDP的应用场景

1.TCP:文件传输、电子邮件、网页浏览。

2.UDP:实时音视频传输、在线游戏、实时监控。

10.什么是野指针,什么情况会产生野指针

什么是野指针

1.指向已被释放或无效的内存地址的指针是野指针。

什么情况下产生野指针

1.内存释放后未置空指针

int*ptr=(int*)malloc(sizeof(int));free(ptr);*ptr=10;//这里ptr成为了野指针

2.返回局部变量的指针

int*getIntPointer(){

intnum=5;

return#//返回局部变量的指针

}

int*ptr=getIntPointer();

*ptr=10;//getIntPointer返回一个野指针

3.未初始化指针

char*p;

11.什么是互斥锁

互斥锁是一种用于线程同步的机制,用于确保同一时间只有一个线程访问共享资源。

12.数组和指针的区别

数组是一块连续的内存空间,其大小在编译时确定,访问元素使用下标操作;而指针是一个变量,存储地址值,大小固定,可以指向不同类型的数据,通过解引用操作访问内存中的数据。

举报

相关推荐

0 条评论