大概一个小时左右。面试官准时开始,来了一位网络的面试官,人特好。
1. 项目介绍,包括实习的项目和校内项目
这部分内容,大概花了30分钟。
2. 下面都是关于网络的内容(确实有点意外),现在回想,问题不难。当时有点慌,因为第一次面试,面试官一步一步给你讲,有不懂的问题随时询问,最后在不断交流中完成代码。
(1)192.168.1.1/24,假如有很多这样的IP地址,请用链表实现这个数据结构?其中24是有效位数。
struct IPNode { // };
(2)面试官介绍了路由最长匹配原则,实现该算法
我找一个图,一个数据包ip,一个路由表route_list。因为IP地址带有有效位数,所以对于灰色的部分不参与比较,第1个有一位不同直接舍弃,第三个是不是最长的长度。这个问题其实是:在有效位数前提下,求最长的匹配路由条目?也就是下面这个函数
struct IPNode *find_best_match(uint32_t ip, struct IPNode *route_list) { }
(3)不用循环快速产生左侧n个1的mask?
(4)offsetof实现方式?
(5)字节对齐问题?IPNode对象在32机器上内存占用?如果要紧凑排列,可以用什么?
(6)#pragma pack(n)和上面的区别,关于n的取值问题?
3 问答环节?
问了一个metor的培养方式?
希望给个二面,,
全部评论
(3) 回帖