avatar-decorate
不会code的菜鸡 level
获赞
1178
粉丝
873
关注
1
看过 TA
4014
北京大学
2024
嵌入式软件开发
IP属地:北京
暂未填写个人简介
私信
关注
1. **单继承与多继承的虚函数表结构**     解释单继承和多继承情况下的虚函数表如何构成,给出示例代码。2. **C++ 程序编译过程**     描述 C++ 程序从源代码到可执行文件的整个编译过程,包括预处理、编译、链接等步骤。3. **C++ 内存管理**     讨论 C++ 中的内存管理,包括动态分配和释放内存的方式。4. **栈和堆的区别**     解释栈与堆的区别,何时使用栈,何时使用堆。5. **变量的区别**     比较局部变量、全局变量、静态变量与动态变量的区别。6. **全局变量定义在头文件中的问题**     讨论将全局变量定义在头文件中可能导致的问题。7. **内存对齐**     解释内存对齐的概念及其在结构体中的应用。8. **什么是内存泄漏**     定义内存泄漏,并说明它的影响。9. **如何防止内存泄漏?内存泄漏检测工具的原理**     讨论防止内存泄漏的方法,介绍几种内存泄漏检测工具及其原理。10. **智能指针的种类及实现原理**      介绍 C++ 中的智能指针(如 `unique_ptr`、`shared_ptr`、`weak_ptr`)及其实现原理。11. **智能指针应用举例**      提供智能指针的实际应用示例,说明其优缺点。12. **如何将 `unique_ptr` 赋值给另一个 `unique_ptr` 对象**      解释 `unique_ptr` 的移动语义,并给出代码示例。13. **使用智能指针可能出现的问题及解决方法**      讨论使用智能指针时可能遇到的问题,如循环引用,并提供解决方案。14. **在 Visual Studio 中检测内存泄漏的方法**      介绍 Visual Studio 中如何检测内存泄漏以及如何定位泄漏的代码位置。15. **深拷贝与浅拷贝**      解释深拷贝与浅拷贝的概念及其在 C++ 中的实现。16. **虚拟内存**      讨论虚拟内存的概念及其在操作系统中的作用。17. **语言对比**      比较 C++ 与其他编程语言(如 Java、Python)的异同点。18. **C++ 11 新特性**      列举 C++ 11 中的一些新特性,并简要说明它们的作用。19. **C 和 C++ 的区别**      讨论 C 语言与 C++ 语言之间的主要区别。20. **Python 和 C++ 的区别**      比较 Python 与 C++ 的语法、性能、内存管理等方面的不同。21. **面向对象**      解释面向对象编程的基本概念及其优势。22. **面向对象的三大特性**      详细说明封装、继承和多态这三大特性。23. **重载、重写、隐藏的区别**      解释这三者的定义及其使用场景。24. **如何理解 C++ 是面向对象编程**      讨论 C++ 中如何实现面向对象编程。25. **什么是多态?多态如何实现?**      定义多态,并说明在 C++ 中如何实现多态。26. **静态多态与动态多态**      比较静态多态与动态多态的区别及其实现方式。27. **类相关**      讨论 C++ 中类的定义、构造函数与析构函数的作用。28. **什么是虚函数?什么是纯虚函数?**      定义虚函数和纯虚函数,并解释其用途。29. **虚函数与纯虚函数的区别**      讨论虚函数和纯虚函数之间的主要区别。30. **虚函数的实现机制**      解释虚函数的实现机制,包括虚函数表及其在内存中的布局。相关问题收录到专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
1. 什么是数据库范式?为什么要进行范式化?2. 解释一下 SQL 和 NoSQL 数据库的区别。3. 什么是关系数据库?它的特点是什么?4. 什么是数据模型?常见的数据模型有哪些?5. 解释一下数据完整性及其类型。6. 什么是数据库锁?锁的类型有哪些?7. 什么是死锁?如何检测和解决死锁?8. 解释一下数据库的连接(JOIN)及其类型。9. 什么是索引覆盖?它的优缺点是什么?10. 什么是聚集索引和非聚集索引?11. 数据库中的视图与物化视图的区别?12. 什么是数据仓库?与数据库的区别是什么?13. 什么是 ETL 过程?14. 数据库的分布式架构有哪些?各自的优缺点是什么?15. 解释一下数据库的事务日志及其作用。16. 什么是数据迁移?在什么情况下需要进行数据迁移?17. 什么是 SQL 注入?如何防止 SQL 注入?18. 什么是数据备份的增量备份和全量备份?19. 解释一下数据库的归档(Archiving)策略。20. 什么是数据库的性能调优?常用的方法有哪些?21. 什么是数据字典?它的作用是什么?22. 什么是数据库的规范化与反规范化?23. 解释一下数据库的缓存机制及其重要性。24. 什么是 ACID 和 BASE 模型?25. 解释一下数据库的查询优化器及其工作原理。26. 什么是数据模型的实体-关系模型(ER模型)?27. 什么是数据库的多版本并发控制(MVCC)?28. 解释一下数据库的备份与恢复策略。29. 什么是数据同步?常见的数据同步方式有哪些?30. 数据库的监控指标有哪些?如何进行性能监控?更多问题关注下方专栏,都汇总在专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
1. 什么是操作系统的内核?它的主要功能是什么?2. 解释一下操作系统中的中断机制。3. 什么是死锁?死锁的必要条件是什么?4. 如何检测和解决死锁?5. 什么是轮转调度算法?它的优缺点是什么?6. 解释一下优先级调度算法及其可能的问题。7. 什么是实时操作系统?它与一般操作系统有何不同?8. 什么是内存分页?分页的优缺点是什么?9. 解释一下段式存储管理。10. 什么是文件系统?它的基本功能是什么?11. 进程调度中的时间片是如何确定的?12. 什么是缓存?缓存的作用是什么?13. 操作系统是如何管理I/O设备的?14. 解释一下虚拟化技术及其应用场景。15. 什么是系统调用?它的作用是什么?16. 解释一下操作系统中的文件权限管理。17. 什么是线程安全?如何实现线程安全?18. 什么是地址空间?它在进程管理中有什么作用?19. 解释一下内存泄漏及其原因。20. 什么是操作系统的上下文切换?它的成本是什么?21. 解释一下Linux中的进程优先级。22. 什么是网络协议栈?它的层次结构是怎样的?23. 什么是负载均衡?在操作系统中如何实现?24. 解释一下操作系统中的资源分配策略。25. 什么是软中断和硬中断?26. 如何实现操作系统的多任务处理?27. 什么是文件描述符?它的作用是什么?28. 解释一下操作系统的安全性和保护机制。29. 什么是内存映射文件?它的应用场景是什么?30. 解释一下操作系统中的任务调度与负载均衡的关系。更多问题关注下方专栏,都汇总在专栏中。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
嵌入式软件工程师的职责主要是根据产品的功能需求设计好软件,让硬件工作起来。嵌入式电子产品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 几大部分组成,而软件就千差万别了。产品的具体功能都是由软件来实现的,一般来讲一个产品的实现,软件设计的工作量是硬件设计的45倍。所以一般情况下,一个公司的软件工程师数量是硬件硬件工程师的45倍,嵌入式软件工程师需求比硬件工程师大很多,同时跟硬件工程师相比,嵌入式软件工程师学起来相对容易些,所以这里我重点和大家谈一下嵌入式软件工程的学习路线。嵌入式软件工程师学习路线1、打好嵌入式软件编程的基础这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。特别是C语言中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。 这一阶段推荐的嵌入式学习书籍如下:《C程序设计语言》,《C语言核心技术》,《数据结构与算法分析–C语言描述》,《C和指针》,《C陷阱与缺陷》,《C++ Primer》2、学习ARM体系结构编程这一阶段才是真正的嵌入式编程,首先我们要选择一款嵌入式CPU和一款嵌入式开发平台,目前ARM 嵌入式CPU应用最广泛,这一阶段重点是学习嵌入式CPU的裸机编程,熟悉中断、定时器、串口、NAND FLASH、网络控制器、LCD屏、触摸屏等常用嵌入式外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。这一阶段除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程师来讲,重点是学习硬件的工作原理,在掌握硬件工作原理的基础上,对硬件进行编程控制。这和硬件工程师学习的侧重点有所不同。这一阶段对应的学校的课程主要包括模拟电路、数字电路、微机原理和单片机。这一阶段重点是要看CPU的芯片手册,大部分的参考书也是对芯片手册的翻译。推荐的参考书籍如下:《ARM嵌入式系统开发软件设计与优化》,《ARM处理器开发详解 基于ARM Cortex-A8处理器的开发设计》3、学习嵌入式系统的构建这一阶段主要学习带有操作系统的嵌入式系统的构建,包括系统的启动流程、Bootloader的工作流程、UBOOT的编译、裁剪与移植、嵌入式Linux内核的裁剪、移植与编译,嵌入式根文件系统的定制、BootLoader、内核和根文件系统的烧写。 这一阶段的主要目的是掌握带有操作系统的嵌入式系统的构建和烧写过程,以及对嵌入式系统软件的总体构成有个整体认识,为我们接下来学习嵌入式应用和驱动开发打下坚实的基础。 这一阶段推荐的书籍如下:《构建嵌入式Linux核心软件系统实战》4、学习嵌入式Linux应用程序开发这一阶段主要学习上层的嵌入式Linux应用程序开发,包括基于Linux多进程、多线程、网络、文件与目录和QT编程。掌握嵌入式Linux环境下应用程序开发技术。这一阶段推荐的书籍有: 《UNIX环境高级编程》, 《Unix网络编程》,《Qt Creator快速入门》, 《精通Qt4编程》5、学习嵌入式Linux驱动程序开发这一阶段主要学习底层嵌入式Linux设备驱动程序开发设计,包括常用的字符设备驱动、块设备驱动、LCD设备驱动、触摸屏设备驱动以及驱动程序开发中的核心技术。这一阶段推荐的参考书籍有:《Linux设备驱动程序》,《Linux设备驱动开发详解》。6、完成一个综合项目嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识来解决实际开发中的问题,我们需要来完成一个综合的嵌入式实训项目,例如: 基于嵌入式Linux平台实现的飞行器、 基于嵌入式Linux平台实现的智能机器人等,这些项目都综合应用了嵌入式开发当中的应用,驱动和QT开发技术。以上介绍的就是嵌入式软件工程师学习路线图了,在学员们系统的学习嵌入式知识后,嵌入式基本上就算入门了,这时候去应聘企业的嵌入式研发工程师岗位就不会有什么问题了。嵌入式面经可以参考下方链接  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的引用和指针有什么区别?2. 什么是RAII(资源获取即初始化)?3. C++中的智能指针有哪些?各自的特点是什么?4. 什么是内存对齐?如何影响性能?5. C++中的const关键字有什么用?可以修饰哪些内容?6. 解释一下什么是多重继承及其潜在问题。7. C++中如何实现接口?与Java的接口有什么区别?8. 什么是模板元编程?9. 解释一下C++中的异常处理机制。10. C++中如何防止对象被拷贝?11. 说说C++中的访问控制(public, protected, private)。12. C++中的友元函数和友元类有什么用?13. 什么是析构函数?它的作用是什么?14. C++中如何实现单例模式?15. 解释一下C++中的命名空间。16. C++中的类型推导有什么用?如何使用?17. 讲一下C++中的字符串处理(如std::string)。18. C++中的虚函数表(vtable)是什么?19. 解释一下C++中的默认参数。20. C++中的类型转换有哪些方式?21. 说说C++中的运算符重载的注意事项。22. C++中的动态多态和静态多态有什么区别?23. C++中的std::move和std::forward有何区别?24. 解释一下C++中的lambda表达式的使用场景。25. C++中的std::bind和std::function有什么用?26. C++中的范围for循环是如何实现的?27. C++中的std::optional是什么?有什么用?28. 讲一下C++11中的线程库的基本使用。29. C++中的volatile关键字有什么作用?30. C++中的static_assert有什么用?  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
查看30道真题和解析
0 点赞 评论 收藏
分享
1. push_back()左值和右值的区别是什么?2. move底层是怎么实现的?3. 完美转发的原理是什么?4. 空类中有什么函数?5. explicit用在哪里?有什么作用?6. 成员变量初始化的顺序是什么?7. 指针占用的大小是多少?8. 野指针和内存泄漏是什么?如何避免?9. malloc和new的区别是什么?10. 多线程会发生什么问题?线程同步有哪些手段?11. 什么是STL?12. 对比迭代器和指针的区别13. 线程有哪些状态,线程锁有哪些?14. 解释说明一下map和unordered_map15. vector中的push_back()和emplace_back()的区别、以及使用场景16. 如何实现线程安全,除了加锁还有没有其他的方式?17. vector扩容,resize和reserve的区别18. vector扩容为了避免重复扩容做了哪些机制?19. C++中空类的大小是多少?20. weak_ptr是怎么实现的?21. 虚函数的底层原理是什么?22. 一个函数f(int a,int b),其中a和b的地址关系是什么?23. 移动构造和拷贝构造的区别是什么?24. lamda表达式捕获列表捕获的方式有哪些?如果是引用捕获要注意什么?25. 哈希碰撞的处理方法26. unordered_map的扩容过程27. vector如何判断应该扩容?(size和capacity)28. 构造函数是否能声明为虚函数?为什么?什么情况下为错误?29. 类中static函数是否能声明为虚函数?30. 哪些函数不能被声明为虚函数?31. 如何保证类的对象只能被开辟在堆上?(将构造函数声明为私有、单例)32. 讲讲你理解的虚基类33. C++哪些运算符不能被重载?34. 动态链接和静态链接的区别,动态链接的原理是什么?35. C++中怎么编译C语言代码?答案附在面经中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看35道真题和解析
0 点赞 评论 收藏
分享
1. static 关键词的作用是什么?2. static 修饰局部变量会用在什么时候?3. static 修饰全局变量,全局变量会在那个空间?4. static 修饰函数时,函数的作用域是什么?5. extern 关键字的作用是什么?6. volatile 关键字的作用是什么?7. sizeof 和 strlen 的区别是什么?8. strcpy 和 memcpy 的区别是什么?9. 如何理解变量的定义和使用?10. 数组和指针的区别是什么?11. 回调函数的定义是什么?12. 函数指针和指针函数的区别是什么?13. 空指针(NULL)和 void * 的区别是什么?14. 结构体与联合体之间的主要区别是什么?15. 什么是内存泄漏?如何产生的?16. 什么是内存溢出?如何产生的?17. 堆和栈的区别是什么?18. 栈区和堆区的特点是什么?19. 常量区和代码区的定义是什么?20. 静态区的作用是什么?21. BSS 区和 Data 区的区别是什么?22. 大小端模式的定义是什么?23. C 语言的编译过程包含哪些步骤?24. 预处理的作用是什么?25. 编译阶段的主要任务是什么?26. 汇编阶段的主要任务是什么?27. 链接阶段的主要任务是什么?28. 如何避免内存泄漏?29. 动态内存分配和静态内存分配的区别是什么?30. 如何判断一个变量是否为野指针?面经整理到下方专栏  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
1. 前后台程序与实时操作系统的区别是什么?2. 实时系统的基本特性有哪些?3. 什么是不可剥夺型内核?它的特点是什么?4. 可剥夺型内核的定义及适用场景是什么?5. 什么是可重入型函数?它有什么特点?6. 使用可剥夺型内核时,为什么不应直接使用不可重入型函数?7. 为什么应用程序一定要使用空闲任务?8. volatile关键字的作用是什么?在什么情况下需要使用?9. 变量声明时使用volatile修饰的情况有哪些?10. 一个参数可以同时是const和volatile吗?为什么?11. 一个指针可以是volatile吗?请解释。12. 函数int square(volatile int *ptr)能实现预期目标吗?为什么?13. 临界区和临界资源的定义是什么?14. 什么是原子操作?原子性如何影响临界资源的保护?15. 如何通过关中断来保护临界资源?16. 什么是自旋锁?它的主要用途是什么?17. 死锁的概念是什么?如何避免死锁?18. uCOS操作系统中的任务是如何组成的?19. 什么是空任务控制块链表?它与任务控制块链表有什么区别?20. uCOS的启动过程是怎样的?21. 任务的五种状态分别是什么?22. FreeRTOS的调度方式是什么?23. FreeRTOS的任务栈是如何设定的?参考依据是什么?24. FreeRTOS中使用的IPC通信方式有哪些?25. Linux中FTP服务和SMTP服务的默认端口分别是多少?26. 操作系统采用缓冲技术的目的是什么?27. 红黑树与AVL树的主要区别是什么?28. Servlet的生命周期可以分为哪几个阶段?29. Linux执行ls命令时,会引起哪些系统调用?30. FreeRTOS移植到哪些平台,移植过程占用哪些硬件资源?下方面经中有答案  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
1. 为什么构造函数不能为虚函数?2.为什么析构函数可以为虚函数,如果不设为虚函数可能会存在什么问题?3 .不能声明为虚函数的有哪些4 sizeof 和 strlen 的区别5 lambda 表达式(匿名函数)的具体应用和使用场景6 explicit 的作用(如何避免编译器进行隐式类型转换)7 C 和 C++ static 的区别8 static 的作用9 static 在类中使用的注意事项(定义、初始化和使用)10 static 全局变量和普通全局变量的异同11 const 作用及用法12define 和 const 的区别13 define 和 typedef 的区别14 用宏实现比较大小,以及两个数中的最小值15 inline 作用及使用方法16  inline 函数工作原理17 宏定义(define)和内联函数(inline)的区别18 new 的作用?19 new 和 malloc 如何判断是否申请到内存?20 delete 实现原理?delete 和 delete[] 的区别?21 new 和 malloc 的区别,delete 和 free 的区别22 malloc 的原理?malloc 的底层实现?23 C 和 C++ struct 的区别?24 为什么有了 class 还保留 struct?25 struct 和 union 的区别26 class 和 struct 的异同27 volatile 的作用?是否具有原子性,对编译器有什么影响?28 什么情况下一定要用 volatile, 能否和 const 一起使用?29 返回函数中静态变量的地址会发生什么?30 extern C 的作用?上述问题下方专栏有整理  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看31道真题和解析
0 点赞 评论 收藏
分享
1.&nbsp;sizeof(1==1)&nbsp;在&nbsp;C&nbsp;和&nbsp;C++&nbsp;中分别是什么结果?2.&nbsp;memcpy&nbsp;函数的底层原理?3.&nbsp;strcpy&nbsp;函数有什么缺陷?4.&nbsp;auto&nbsp;类型推导的原理?5.&nbsp;malloc一次性最大能申请多大内存空间?6.&nbsp;public、protected、private的区别?7.&nbsp;左值和右值的区别?左值引用和右值引用的区别,如何将左值转换成右值?8.&nbsp;std::move()&nbsp;函数的实现原理?9.&nbsp;什么是指针?指针的大小及用法?10.&nbsp;C++&nbsp;11&nbsp;nullptr&nbsp;比&nbsp;NULL&nbsp;优势?11.&nbsp;指针和引用的区别?12.&nbsp;常量指针和指针常量的区别?13.&nbsp;函数指针和指针函数的区别?14.&nbsp;强制类型转换有哪几种?15.&nbsp;如何判断结构体是否相等?能否用&nbsp;memcmp&nbsp;函数判断结构体相等?16.&nbsp;参数传递时,值传递、引用传递、指针传递的区别?17.&nbsp;什么是模板?如何实现?18.&nbsp;函数模板和类模板的区别?19.&nbsp;什么是可变参数模板?20.&nbsp;什么是模板特化?为什么特化?21.&nbsp;include&nbsp;&quot;&nbsp;&quot;&nbsp;和&nbsp;<>&nbsp;的区别?22.&nbsp;泛型编程如何实现?23.&nbsp;C++命名空间?24.&nbsp;C++&nbsp;STL六大组件?25.&nbsp;简单说一下大端、小端。26.&nbsp;什么是git?27.&nbsp;为什么要用git?在LINUX中我们可以使用mmap用来在进程虚拟内存地址空间中分配地址空间,创建和物理内存的映射关系。28.&nbsp;简述集中式版本控制库和分布式版本控制库的区别。29.C++&nbsp;中的异常处理机制是怎样的?30.什么是&nbsp;RAII(资源获取即初始化)?它在&nbsp;C++&nbsp;中的应用是什么?上述问题下方专栏有整理&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
1.&nbsp;系统模块在系统组件中,我们需要学习如下模块:•系统&nbsp;API(应用程序接口):系统&nbsp;API&nbsp;提供了用户和应用程序与操作系统交互的方式。通过调用&nbsp;API,用户程序可以请求操作系统执行特定的任务,如文件操作、进程管理等。•设备驱动程序:设备驱动程序是操作系统与硬件设备之间的桥梁。它们使操作系统能够控制和管理各种硬件设备,如打印机、网络适配器等。•I/O(输入输出):I/O&nbsp;涉及数据在计算机系统内外的传输。2.&nbsp;内存模块在内存管理中,我们需要学习如下模块:•物理内存:物理内存是计算机硬件中实际存在的内存单元。操作系统负责管理物理内存的分配和释放。•虚拟内存:虚拟内存允许程序使用比实际物理内存更大的地址空间。操作系统通过虚拟内存管理,将程序的虚拟地址映射到物理内存上。•内存映射:内存映射将文件映射到内存中的一段地址空间,使得可以像访问内存一样访问文件内容。3.&nbsp;进程模块在进程管理中,我们需要学习如下模块:•进程调度:进程调度决定了哪个进程在何时运行。操作系统需要公平地分配&nbsp;CPU&nbsp;时间给不同的进程,以保持系统的平稳运行。•中断处理:中断是硬件事件的通知,操作系统需要及时响应并进行适当的处理。中断处理保证了系统对外部事件的敏感性。•线程与同步:线程允许程序并发执行多个任务。同步机制确保了多个线程之间的数据一致性和协调运行。4.&nbsp;网络模块在网络组件中,我们需要学习如下模块:•网络协议:网络协议是数据在网络中传输的规则和约定。TCP/IP&nbsp;协议栈是广泛使用的网络协议,确保了数据的可靠传输。•套接字编程:套接字是网络通信的接口,操作系统通过套接字编程提供了网络通信的能力。套接字允许应用程序通过网络发送和接收数据。•NIC&nbsp;驱动程序:网络接口控制器(NIC)驱动程序负责管理计算机连接到网络的硬件接口。它们实现了数据在物理层的传输。5.&nbsp;存储模块在存储管理中,我们需要学习如下模块:•文件系统:文件系统是数据组织和存储的方式,使得文件和目录的管理变得高效。常见的文件系统有&nbsp;ext4、NTFS&nbsp;等。•I/O&nbsp;缓存:I/O&nbsp;缓存用于加速数据的读写操作。操作系统会在内存中维护一块区域,用于存放最近访问的数据块。•存储设备:存储设备包括硬盘、固态硬盘等。操作系统需要管理这些设备的读写和存储。相关知识下边有文章供参考&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
查看14道真题和解析
0 点赞 评论 收藏
分享
一、嵌入式方向学习路线1、C语言嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。2、Linux基础Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI&nbsp;,编译器GCC,调试器GDB和Make项目管理工具,&nbsp;Shell&nbsp;Makefile脚本编写等知识,嵌入式开发环境的搭建。3、Linux系统编程重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。4、Linux网络编程计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。5、数据结构与算法数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。6、C++&nbsp;、QTC++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。相关八股知识整合到下方面经中&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1.关键字static的作用是什么2.关键字const是什么含意?3.const和宏定义的区别4.关键字volatile有什么含意&nbsp;并给出三个不同的例子。5.引用和指针有什么区别6..h头文件中的ifndef/define/endif&nbsp;的作用?7.描述实时系统的基本特性8.全局变量和局部变量的区别9.全局变量和静态全局变量的区别10.static函数与普通函数11.什么是平衡二叉树?12.堆栈溢出一般是由什么原因导致的?13.什么函数不能声明为虚函数?14.不能做switch()的参数类型15.程序的内存分配16.堆与栈的区别17.描述内存分配方式以及它们的区别18.malloc和new的区别是什么?19.进程与线程的区别20.多进程和多线程的区别21.什么是预编译,何时需要预编译22.三种基本的数据模型23.简述数组与指针的区别?24.位操作25.访问固定的内存位置(Accessing&nbsp;fixed&nbsp;memory&nbsp;locations)26.中断与异常的区别27.变量的定义总结28.为什么要使用宏,宏有什么优缺点?29.内联函数及与宏的区别30.MCU启动过程31.Arm体系结构32.什么是嵌入式?33.进程与线程中的通信方式34.如何将PC上的程序移植到嵌入式系统上,需要注意些什么?35.设计一种通信方式,从一台主机向另外一台主机传递数据,那么应该怎么选择。36.FreeRTOS之全配置项详解、裁剪(FreeRTOSConfig.h)37.DMA为什么能提高效率?38.优先级反转以及解决方法39.信号量及信号量与自旋锁的区别40.strcpy和strncpy的缺陷答案收录到专栏中,集合上千篇面经知识汇总面经&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看40道真题和解析
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务