ARM/Linux嵌入式面经(二九):经纬恒润Linux开发

文章目录

    • 介绍自己的三个项目
    • 1.什么是内联函数和宏定义?
      • 内联函数与宏定义
      • 追问及答案
    • 2.宏定义作用在编译阶段的哪个阶段生效?
    • 3.指针和数组的异同
      • 指针和数组的异同
      • 追问几个有深度的技术问题
    • 4.讲一下结构体
      • 回答
      • 追问及答案
    • 5.结构体里面内存对齐的规则
      • 结构体内存对齐的规则
      • 追问几个有深度的技术问题
    • 6.结构体和联合体的关系与区别
      • 结构体(Struct)和联合体(Union)的关系与区别
      • 追问几个有深度的技术问题
    • 7.讲一下epoll poll select
      • epoll、poll、select 的区别
      • 追问及答案
    • 8.C++虚函数
      • C++虚函数回答
      • 追问几个有深度的技术问题
    • 9.内存图显方式dma了解吗?
      • DMA(Direct Memory Access)概述
      • DMA在内存图显方式中的应用
      • 追问及答案
    • 10.以太网的网络协议了解吗?讲一下arp协议,动态arp和静态arp的区别
      • 回答
      • 追问有深度的技术问题及答案


介绍自己的三个项目

根据你的每个项目深挖了一些问题

1.什么是内联函数和宏定义?

内联函数与宏定义

内联函数(Inline Functions)
内联函数是C++(也存在于C99及之后版本,通过inline关键字实现,但行为可能有所不同)中用于减少函数调用的开销的一种技术。当编译器遇到内联函数的调用时,它会在调用点直接展开函数的代码,而不是像普通函数调用那样进行压栈、跳转和返回。这样做的好处是可以减少函数调用的开销,特别是对于那些体积小、调用频繁的函数。但是,如果内联函数过大或包含复杂的控制结构,编译器可能会忽略内联请求,因为过度内联可能会增加代码大小,影响缓存效率,反而降低性能。

宏定义(Macro Definitions)
宏定义是预处理指令的一种,用于在预处理阶段对代码进行文本替换。宏定义可以是无参数的(如#define PI 3.14159),也可以是有参数的(如

你可能感兴趣的:(ARM/Linux嵌入式面试,arm开发,芯片,单片机,嵌入式硬件)