嵌入式软件面试:Makefile目标与二维数组动态内存管理
需积分: 9 131 浏览量
更新于2024-07-25
收藏 216KB DOC 举报
嵌入式软件工程师面试中,Makefile 是一个重要的构建工具,用于自动化管理和协调编译过程。在面试中,可能会询问对 Makefile 的理解和使用,特别是对于其中提供的目标(Targets)的理解。以下是一些关键知识点:
1. **Makefile目标解释**:
- `make`: 这是最基本的命令,用于编译并链接程序,等同于 `make all`,执行整个项目的构建流程。
- `make objs`: 这个目标只进行编译,生成 `.o`(对象文件),但不进行链接。在实际开发中,可能在需要单独优化编译阶段时使用。
- `make clean`: 清除编译过程中产生的临时文件和目标文件,保持代码库整洁。
- `make cleanall`: 更彻底的清理,除了目标文件和依赖文件外,还会删除可执行文件,确保从头开始构建。
- `make rebuild`: 等同于先清理再编译,即执行 `make clean && make all`,确保所有源代码都得到重新编译和链接。
2. **二维数组空间动态申请与管理**:
- 动态分配二维数组是嵌入式编程中常见的内存操作,例如:
- 定义动态数组:`char(*c)[5];` 或 `int**p;` 分别表示一维字符数组和指向整数的一维指针数组。
- 分配空间:`c = new char[n][5]` 和 `p = new int*[m_row]` 分别为一维数组和指针数组分配内存。
- 使用函数封装动态分配和释放:如 `getmemory` 函数用于分配内存,`deletememory` 函数负责释放内存,包括行指针和每个元素。
3. **嵌入式笔试题目示例**:
- 题目一是关于内存管理和错误修复,考察了对静态变量 `static` 的理解以及内存分配函数 `malloc` 的使用。指出 `getstring` 函数中的 `char p[]` 应该加上 `static` 关键字,防止多次调用时产生不必要的字符串拷贝。
- 题目二是 C 结构体类型定义的示例,展示了两个自定义结构体:`head_t` 和包含 `head_t` 结构的复合结构体。`head_t` 包含一个整数值和字符类型,而复合结构体 `me` 包含 `head_t` 类型的头信息和一个整型参数 `para`。
这些知识点在面试中会作为考察候选人对嵌入式开发基础、内存管理和构建工具使用的重要环节,确保他们具备扎实的编程技能和实践经验。面试者应准备如何清晰地解释这些概念,以及如何在实际项目中应用它们。
2021-03-14 上传
2014-01-19 上传
2023-11-19 上传
2023-04-01 上传
2023-11-19 上传
2023-10-16 上传
2021-09-14 上传
winston211
- 粉丝: 0
- 资源: 3
最新资源
- MD5加密文档,包括原理及代码
- Rampant.TechPress.Oracle.SQL.Internals.Handbook
- ext中文手册整理版
- 电子商务大赛资料2-试题下面有
- java2实用教程(第3版例子代码).doc
- mapinfo开发的三种方法
- 技术资料下载\嵌入式软件编程的论文30篇\ERA2000成像测井地面仪器硬件的设计与实现.pdf
- Advanced_Python_programming
- Struts常见错误汇总.txt
- 酒店管理系统可行性分析
- VHDL基础教程学习
- max232 pdf
- emule 源码分析
- 基于J2EE的Ajax宝典
- eclipse中文使用文档
- 浅谈Java的输入输出流.pdf