小米C++开发一面
1.自我介绍
2.有什么方法保证每个头文件只被使用一次。(回答:宏定义#ifndef,#pragma once)
3.那这样使用的原理是什么,为什么能保证头文件只使用一次? (不知道)
4.写一个宏,表示求a和b的最小值 ( #define MINA_B(a,b) ((a>b)?b:a) ,写了三四次终于写对了,前面写错的时候面试官说你这语法都不对)
5.结构体对齐,给了几个结构体问占多少字节 。 那为什么要有结构体对齐,对齐有什么好处(???)
6.堆和栈的区别
7.解释队列和链表
8.内存泄漏是什么?
9.怎么解决系统大资源的内存泄漏问题 (不知道。面试官引导,内存泄漏是针对什么粒度的问题?? 进程 所以怎么解决?? 关闭或重启进程 对)
10.线程是什么?
11.项目相关
12.C++多态实现方式
13.malloc和new的区别,delete p 和delete[] p 有什么区别(自己啰啰嗦嗦解释不清楚)
13.手写,任意正整数,每一位相加,如果大于10,继续分解。否则,就是结果。
(如47 4+7=11 1+1=2 最后返回2)
14.反问
面试官人真挺好,你不懂的会一直引导,很多问题大致知道,但一些细节在学习的时候被忽视了,
还有就是,,,有点严肃,一个小时没笑过。。
#面经##小米##C++工程师##校招#