兆易创新嵌入式软件工程师笔试题目解析_嵌入式-常用知识&面试题库_大厂面试真题.pdf
嵌入式软件工程师在面试和笔试中经常遇到各种技术问题,包括操作系统原理、编程语言、数据结构、硬件接口等。以下是一些从给定文件中提取的重要知识点: 1. **Linux命令行操作**: - `mkdir`命令用于创建目录。选项 `-p` 允许在父目录不存在时创建它们,例如 `mkdir -p directory`。 2. **进程创建与管理**: - `fork()` 函数在C语言中用于创建新进程。每次调用可能返回0(子进程)、正整数(父进程,表示子进程的PID)或负数(错误)。 - 逻辑运算符在进程创建中的作用:`fork() && fork() || fork()`。这段代码会根据条件判断执行不同数量的`fork()`,从而创建不同数量的进程。在给定的示例中,总共创建了19个进程。 3. **进制转换**: - 判断数字表示的进制通常通过检查末尾的符号。如果公式 `3A*124=446C` 成立,且末尾是"C",则排除十进制(无字母表示)和十二进制(C表示12)。通过计算,可以确定这是14进制。 4. **字符数组初始化**: - 二维字符数组的初始化要求每一行字符串长度匹配。正确初始化例子:`char b[2][3] = {"d","e"};`。其他选项需要调整大小以适应字符串。 5. **数据类型与内存占用**: - 在32位系统中,`unsigned long long` 占用8个字节,而 `int` 占4个字节,`char` 占1个字节,`short int` 占2个字节。 6. **指针操作与数组**: - `int a[6] = {1,2,3,4,5,6};` 定义了一个整型数组。表达式 `*((int*)(&a+1)-1)` 涉及到指针运算。`&a` 是数组首地址,`&a+1` 在32位系统中相当于向后移动了24个字节(因为数组类型为`int[6]`,每个`int`占4字节)。因此,`*(p-1)` 表示访问数组的最后一个元素,即 `a[5]`,所以打印结果是 `6`。 这些知识点反映了嵌入式开发中对基础操作系统知识、程序设计和内存理解的要求。掌握这些内容对于准备嵌入式软件工程师的面试或笔试至关重要。在实际工作中,这些知识将帮助工程师编写更高效、更可靠的代码,并能有效地解决问题。
剩余7页未读,继续阅读
- 粉丝: 27
- 资源: 6165
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助