20200624面试题回顾

某公司秋招提前批游戏开发岗一面

(如有错误或遗漏,敬请留言指正)

一.C++简述题

1.静态库与动态库的区别

  • 动态库和静态库的本质区别是,动态库是在程序运行时链接的,而静态库在编译时把代码加入目标程序,那么程序运行时就不需要了。所以使用静态库时生成的目标程序可以脱离源码运行,而动态库生成的目标程序,还需要先安装库才行
  • 使用gcc编译的静态库,在生成目标程序链接的过程中也只能用gcc编译;同理使用g++编译的静态库在生成目标程序链接的过程中也只能用g++编译。否则会报错"undefined reference to 'Fun1()'
  • 用gcc编译目标程序时,main.c中可以不需要#include "lib.h",会报warning,但是不会报error;但是用g++编译时,一定要加 #include "lib.h",不然编译不通过,因此用g++编译的静态库,还需要它的所有头文件才能使用。
  • 当你更改库文件的一些宏定义或者其他东西时,需要重新编译静态库,不然你的修改没有起作用。

(from:https://www.jianshu.com/p/be7354745aaf)

2.#define与const的区别

【考官重点问的:二者的生效时间】

#define是预编译期间,const是编译期间保存到符号表中,通常不分配内存。

其他:

  • #define不做类型检查,容易出错
  • 作用域不同
  • #define替换的地方都会在内存中存储,有n个备份,n=替换数,而const只有一个备份,节省内存空间;
  • #define无法调试,const可以调试。

3.某struct有char与int成员各一个,问该struct占用内存空间。

     注意有对齐规则,详见:https://blog.csdn.net/changyang208/article/details/78668462

二. 算法题

1.以顶点形式给出两矩形,如何判断是否重叠。

     当时现场给出一种思路是以此对A矩形4个顶点依次判断点是否在矩形内(图形学最基本的东西),后来想想其实不对,因为重叠不一定意味着点在矩形内。考官说可以用八叉树,但是完全不懂。。。现在还没搜到靠谱的算法。(望指教!)

2.给一个vector和一个待搜索的值val。返回val在vector中出现的次数,并将vector中的val全部山区,返回剩下的vector。

     现场给出的算法时间复杂度O(n平方),考官居然不追问了。。。(可能真的是对我弃疗了)

三.其他非技术问题

    为啥想做游戏?玩过哪些游戏?做过什么游戏?职业生涯规划?

四.其他要记录的

    1.报的技术栈c++/c#/unity,结果unity啥也没问,全部c++

    2.明显是有题库,考官从题库里挑题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值