大华嵌入式面试题大全及参考答案(2万字长文)

目录

在C语言中,static 关键字有哪些主要用途?

static 修饰的全局变量与普通全局变量有什么区别?

为什么要在嵌入式系统中使用 static 修饰函数?

虚函数与纯虚函数了解么?

strcpy 给你加结束符吗,还是要自己加?

select 的作用是什么,它和 epoll 的区别?

map 与 set 了解么,有什么区别?

GDB调试的基本操作,以及如何去追踪变量、查看堆栈信息?

内存四区,malloc 和 new 是如何分配内存空间的?

内存四区

malloc 和 new 如何分配内存空间

C++的面向对象的三个基本特征是什么,介绍一下多态?

封装

继承

多态

C++动态分配内存的函数是什么,它分配的内存位于哪个区,如果没有 delete 会导致什么问题?

malloc 和 new 的区别?

野指针是什么?

常量指针和指针常量的区别,const char * 是属于哪一个?

单链表和循环链表的操作?

单链表

循环链表

C++ struct 和 union 区别?

struct

union

C++ 内存泄漏,怎么解决?

解决方法

memcpy、strcpy 区别?

main 函数执行前会执行什么?

C++拷贝构造函数和赋值函数的区别?

拷贝构造函数

拷贝赋值运算符

排序中的快速排序,什么情况是最坏的?

迭代器与引用的区别,迭代的好处?

迭代器与引用的区别

迭代器的好处

vector 一直加数据会有什么变化?reverse 的具体实现?

vector 一直加数据的变化

reverse 的具体实现

程序如何调试,GDB怎么处理异常,数组越界?

程序调试的一般步骤

GDB 处理异常

处理数组越界

数据结构了解哪些?队列和栈的原理?

数据结构概述

队列和栈的原理

快速排序的原理、复杂度,出现最差情况的实际情景(每次选的基准数都很极端)?

快速排序原理

时间复杂度

最坏情况实际情景

vector 插入元素后的详细过程?

std::vector 插入元素的过程

了解死锁么,它是咋么产生的以及如何解决?

死锁概念

产生原因

解决方法

物理地址与虚拟地址,如何映射?

物理地址与虚拟地址的概念

映射过程

TCP和UDP的区别以及TCP如何保证数据传输的稳定性?

TCP 和 UDP 的区别

TCP 保证数据传输稳定性的机制

进程临界区有用过吗,怎么样保护?

进程临界区的概念

保护方法

进程和线程的关系,你的项目进程之间怎么实现通信?

进程和线程的关系

进程间通信方法

动态链接和静态链接的优缺点,链接库位于哪个存储区?

动态链接和静态链接

动态链接

静态链接

网络通信分层、每一层用什么协议?

OSI 七层模型

OSI 七层模型各层及其协议

为什么要使用 static 修饰函数?

使用 static 修饰函数的原因

UART串口通信的波特率,常用波特率有哪些?

UART 串口通信波特率

常用波特率

串口通信校验方式是什么,有什么区别?

串口通信校验方式

校验方式的区别

进程临界区怎样保护?

保护进程临界区的方法

如果未接收到串口发送信息,如何查错?

未接收到串口发送信息的排查步骤

堆区和栈区的区别?

堆区和栈区

堆区和栈区的区别

中断进行的流程?

如何配置 GPIO 口输出高电平?

示例代码(假设使用的是一个假想的微控制器库)

I²C (IIC) 通信协议?

I²C 通信的关键特性

RS232 和 RS485 的区别?

RS232 和 RS485 的对比

FreeRTOS 和实时性操作系统有什么区别?

FreeRTOS 与 RTOS 的区别

Linux 下调试程序用的什么,Linux 的一些常用指令?

Linux 下调试程序的工具

Linux 的一些常用指令

Linux 怎么定位内存泄漏?

常用工具

使用 Valgrind 的示例

Linux 检测内存泄漏时,发现是内存太小了,怎么办?

调整交换空间示例

Linux 下 GDB 的使用

GDB 基本使用

GDB 高级功能

Redis 有哪些数据类型?

Redis 数据类型

讲一下异步 IO?

异步 IO 概念

异步 IO 的优点

异步 IO 的实现方式

用过哪些通信协议,各自的特点?

通信协议及特点

MQTT 协议传输数据的格式?

MQTT 数据格式

MQTT 消息示例

有用过 STL 库吗,用了哪些内容,vector 和 list 用法的不同?

STL 库使用

vector 和 list 的不同

说说 STL 在多线程编程时的情况,稳定性?

STL 在多线程编程中的使用

稳定性考虑

示例


在C语言中,static 关键字有哪些主要用途?

在 C 语言中,static 关键字主要有两个用途:用于局部变量和用于全局变量。对于局部变量而言,static 可以让一个变量在整个程序运行期间保持其值不变,即使函数调用结束后仍然保留。对于全局变量而言,static 可以限制该变量的作用域仅限于定义它的文件内。

  • 局部变量:

    • 默认初始化为零(或零值)。
    • 在整个程序运行期间都存在。
    • 在函数退出后不会丢失其值。
  • 全局变量:

    • 仅在定义它的文件内可见。
    • 如果在其他文件中定义了同名的非 static 全局变量,则 static 全
  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值