学习目标
(1)什么是内联函数,为什么要有内联函数。
(2)程序分为几段。
(3)队列和栈的区别。
(4)一个.c文件怎么转换为可执行文件。
(5)SPI和IIC寻址的区别。
一、什么是内联函数,为什么要有内联函数
1.1、什么是内联函数
内联函数是一种特殊的函数声明方式,通过在函数前面加上inline关键字,来指示编译器在调用这个函数的时候将他展开,而不是直接进行调用。
1.2、为什么要有内联函数
(1)减小函数调用的开销,提高执行效率。
(2)允许编译器进行优化,提高性能。
二、程序分为几段
(1)代码段:用于存储程序的可执行文件,一般是只读的,防止被修改。
(2)数据段:用于存储已经初始化的全局变量和静态变量。
(3)BSS段:用来存储没有初始化的全局变量和静态变量。
(4)堆:malloc和free进行管理。
(5)栈:存储局部变量,栈的申请和释放是由操作系统来决定的。
三、队列和栈的区别
(1)访问方式的不同:栈的是先进后出,队列是先进先出。
(2)栈只能在栈顶进行操作;队列在队尾进行插入,队首进行删除。
(3)应用场景不同:栈用于函数调用,表达式求值;队列用于任务调度,广度优先搜索。
四、一个.c文件怎么转换为可执行文件
(1)预处理:将头文件宏定义进行展开,生成没有注释的源代码。
(2)编译:将预处理得到的源代码转换为汇编代码。
(3)汇编:将汇编的代码转换为机器码生成对应的目标文件.o。
(4)链接:将全部的.o文件链接成一个可执行程序。
五、SPI和IIC寻址的区别
(1)SPI有4根线:MISO、MOSI、SCK、SS。
SS片选:选择对应设备进行通信。
(2)IIC有2根线:SDA、SCL。
通过从机地址进行寻址。