嵌入式八股2C/C++

本来想写20条,发现自己太啰嗦,14条就提示超过文字上限了,我得精简一点
15.什么是内存对齐(也叫字节对齐,cpu取内存时是按block,实际长度是跟字长有关,编译器会对结构体大小按内存对齐优化,可以用#pragma pack()设置)
16.++i和i++的区别(从汇编看,++i是直接自增,相当于一条指令,i++需要临时变量存i,再i自增,所以++i性能比i++好。但现代编译器会自动优化,一般不会有性能差)
17.什么是堆栈溢出,内存越界(数组超长或者栈小,局部变量数组过大)
18.怎么理解数组传参退化为指针(形参数组当指针用)
19.问号表达式,或运算符的截断性
20.指针传递,取地址传递,值传递的区别。

C++在嵌入式领域主要是应用开发,所以除了要理解C的八股,还需注意一些重点
1.面对象编程的特点和面向过程的区别(封装继承多态)
2.C++是怎么实现多态的(虚函数)
3.什么是虚函数(virtual关键字修饰,父类中的虚函数可以在子类中重写,这样父类指针指向子类对象并调用该函数实际调用的是子类方法从而实现多态)
3.虚函数如何实现多态(父类指针指向子类对象)
4.求类的大小(sizeof(class))(除了考虑成员变量大小和字节对齐,再就是,如果类中存在虚函数,那么会隐藏一个指针指向类的虚表。因此还多出一个虚表指针的大小。)
5.什么是虚表,虚表保存在哪里(如果类中有虚函数,就有一个虚表,保存函数接口,虚表编译时生成,保存在数据段,不占用类的空间)
6.什么是抽象类,抽象类可以创建对象吗(如果虚函数后面有=0的字段,即为纯虚函数。如果类中有纯虚函数,称为抽象类,抽象类不能实例化)
7..什么是菱形继承,怎么解决?
8.什么是函数重载,可以返回值不同吗(返回值和函数名必须相同,但参数类型和个数可以不同)
9.类成员public,protected,private的含义(public类外可以随意访问,protected子类能访问,private只有自己能访问,子类不能访问)
10.友元能互相访问私有成员吗(可以)
11.智能指针解决什么问题,原理(内存泄漏)
12.为什么有shared_ptr还要weak_ptr(循环引用)
13.空类大小(1字节,编译器分配用来占内存)
14.类中的static成员变量(不属于某一个对象,在全局区)
15.内联函数概念
全部评论

相关推荐

投票
普瑞均胜 硬件开发工程师 9k*14.4 本科其他
点赞 评论 收藏
转发
北京中电45所 对自研产品进行测试或质量保证 工资待遇约了下周谈,可能每月应该会比东软多个4-6k的样子,不过可能会涉及到绩效工资,还不清楚占比多少。
点赞 评论 收藏
转发
2 10 评论
分享
牛客网
牛客企业服务