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

C++面试突击(3)

1、宏定义和常量const有什么区别?宏有什么优缺点?

分析:宏是预处理期的文本替换,const是编译期的类型安全的常量。宏是没有类型检查的,const有;宏的优点是零开销,适合用于嵌入式开发场景,其次它灵活性好,可以用#和##实现字符串拼接或代码生成;它的缺点是不安全,不好调试。

2、Linux驱动分为几类?

分析:这个问题考察对Linux驱动模型的理解是否成体系。linux驱动主要分为三大类,一是字符设备驱动,二是块设备驱动,三是网络设备驱动。字符设备的特点是以字节流的形式进行顺序读取,典型例子是键盘鼠标、串口、LED、传感器等。块设备是以数据块为单位进行读写,如硬盘、U盘和SD卡等。网络设备是面向数据包的,不像前两种那样对应于设备文件。典型例子是以太网卡、wifi模块等。再补充一下常见的字符设备开发流程:首先肯定是先申请设备号、然后创建并注册设备、接着实现并关联文件操作集,最后在用户空间通过设备文件进行测试。

3、内核是什么?

分析:这个问题其实考察你是否理解操作系统的核心。内核是操作系统的核心部分,相当于计算机系统的指挥官,它负责四件最重要的事情:一是进程管理,负责创建线程、调度、销毁进程和线程;二是内存管理,为每个进程分配独立的虚拟内存空间,管理物理内存和虚拟内存的映射;三是设备管理,为硬件设备提供抽象接口;四是文件系统管理,管理存储在磁盘上的数据。

4、进程和线程的区别?

分析:这个问题也是和操作系统有关的。进程相当于“正在进行的程序”,系统会分配独立的内存空间。线程是进程里的一个执行流,一个进程可以包含多个线程,线程是可以共享进程的所有资源的,同时每个线程也有自己独立的栈和寄存器状态。

5、RS485和IIC的区别?

分析:考察协议的基础。先定性描述一下,RS485是一种设备级的通信协议,适合设备间的长距离通信;IIC是一种板级的通信协议,常用于电路板内部芯片之间的短距离通信。IIC是有时钟线的,是同步的;RS485没有时钟线,是异步的,通过约定波特率来通信。

6、IO的状态?

分析:这个是考察硬件基础。IO是输入输出的意思,那就是关注输入和输出的状态。先说输出,我们常见的有开漏输出和推挽输出,开漏输出可以有力的输出低电平,传输高电平的时候要外接上拉电阻才可以得到高电平。推挽输出最常用,可以有力的输出高电平或低电平,驱动能力很强。输入就是上拉或者下拉输入了,上拉就是外部无信号时引脚默认高电平,下拉就是外部无信号时引脚默认低电平。

7、多态是什么,怎么实现的?

分析:这个是C++的经典面试题。多态就是多种形态,允许不同类的对象对同一个消息做出不同的响应,具体的说,就是使用父类的指针或引用来调用一个方法,实际执行的子类重写后的方法。比如一个父类“Animal”,有一个speak()方法。这时候有子类“猫”和“狗”,调用Animal.猫,就会打印“喵喵”,如果调用Animal.狗,就会打印“汪汪”,这就是多态的一个意思。多态的实现主要是通过“动态绑定”和“虚函数表”实现的,动态绑定是说在调用方法的时候,其实不是调用父类的方法,而是调用了子类的方法,虚函数表也是类似这个意思。

8、内存分配的方法?

分析:考察操作系统的问题。因为内存也是有布局的,所以内存分配的方法也不同。常见的方法有静态分配、自动分配和动态分配。像全局变量、静态变量这些就是静态分配的内存;像局部变量这些就是由编译器自动分配的内存,也会自动回收;有些变量是动态变化的,就通过手动动态分配,分配的区域是堆,也要手动释放,避免内存泄漏的问题。

9、new和malloc的区别?

分析:考察内存管问题。malloc是C语言的动态内存分配方法,new是C++的动态内存分配方法,它不仅分配内存,还会调用构造函数,相当于初始化对象。

http://www.dtcms.com/a/403737.html

相关文章:

  • 非法获取计算机信息系统数据罪:技术中立的边界与法律责任
  • 408cpp学习之链表(二)
  • 攻防世界-Web-Training-WWW-Robots
  • No015:如果DeepSeek与四维世界沟通——跨越维度的认知革命
  • JS逆向 - 盼之(ssxmod_itna、ssxmod_itna2)纯算 + 补环境
  • 复习两个与噪声有关的参数:SI-SDR和PESQ
  • apiSQL+GoView:一个API接口开发数据大屏
  • 关停网站的申请网站怎么营销
  • 湖南企业网站定制wordpress投递文章插件
  • Day07_苍穹外卖——缓存菜品与套餐购物车添加查看清空删除功能
  • 默会之墙:机器人教学困境中的认知迷雾与破晓之光
  • 电子规划书商务网站建设在线制作非主流流光闪字 急切网
  • 决策树(Decision Tree)
  • 大模型剪枝系列——非结构化剪枝、结构化剪枝、动态结构化剪枝
  • MoE 的“大脑”与“指挥官”:深入理解门控、路由与负载均衡
  • TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明
  • 返佣贵金属交易所网站建设wordpress装修主题
  • 做海报推荐网站好的网络推广平台
  • 【docker】常用命令
  • Doris数据库-初识
  • Ubuntu 20.04上安装Miniconda3
  • zynq读取片内DNA
  • python用于网站开发桐乡做网站的公司
  • Maven的安装与配置的详细步骤
  • 第三篇布局
  • 网站建设推广 公司两学一做网站是多少钱
  • 分布式专题——21 Kafka客户端消息流转流程
  • 安平有做农产品的网站被wordpress数据库导入插件
  • 个人网站可备案江西龙峰建设集团的网站
  • 从MR迁移到Spark3:数据倾斜与膨胀问题的实战优化