题目 1

C 语言中 restrict 关键字作用,嵌入式什么场景会用到?

答案: restrict 用于指针,告诉编译器:该指针是访问这块内存唯一的方式,没有其他指针别名指向同一块内存。 方便编译器做内存访问优化;多用于库函数参数(memcpy 等);普通业务代码很少手写,主要用于高性能底层驱动。

题目 2

C 语言中,NULL'\0'0 的区别?

答案: 0是整型数字 0; '\0' char 类型,ASCII 码 0,字符串结束标记; NULL 指针空值,代表指针不指向有效地址,本质是指针类型的 0。 不能混用:指针判断用NULL;字符串结尾用'\0';数字判断用0

题目 3

什么是函数重入?可重入函数编写有哪些基本要求(嵌入式重点)?

答案:重入:函数可被多个任务 / 中断同时调用,执行不会出错。 编写要点:不使用全局静态变量;不调用不可重入函数;临界资源加保护;参数使用局部变量。

题目 4

简述静态链接与动态链接,嵌入式裸机开发一般使用哪种链接方式,为什么?

答案:静态链接:编译时把所有目标文件、库打包合并到可执行文件; 动态链接:运行时加载库文件,程序体积更小。 嵌入式裸机常用静态链接,无操作系统,缺少动态加载能力,固件独立运行。

题目 5

C 语言中什么是段错误(Segmentation fault)?写出嵌入式中 3 个常见触发原因

答案:段错误是程序访问非法内存地址引发的运行错误。常见原因:解引用野指针;数组越界访问;修改只读常量区字符串。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐