2014深圳创维总部对Cocos2d-x招聘
笔试题,共7道(我这时只给出6道)
其实这笔试题是Linux / C / C++的笔试题
TCP wait_time
死锁的4个必要条件:
4.1、互斥使用(资源独占) 一个资源每次只能给一个进程使用 4.2、不可强占(不可剥夺) 资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放 4.3、请求和保持(部分分配,占有申请) 一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配) 4.4、循环等待 存在一个进程等待队列 {P1 , P2 , … , Pn}, 其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路
const #define 区别
const定义常量是有数据类型的,这样const定义的常量编译器可以对其进行数据静态类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,没有类型安全检查,且有时还会产生边际效应
移位和乘以2的区别
不管你采用哪种方式,任何合格的优化编译程序都会产生相同的代码,因此你可以采用使程序的上下文更易读的那种方式。你可以用DOS/Windows上的CODEVIEW或UNIX机上的反汇编程序(通常被称为"dis”)这样的工具来查看下述程序的汇编代码: 例10.4乘以2和左移一位经常是相同的 void main() { unsigned int test_nbr = 300; test_nbr * =2;
test_nbr = 300; test_nbr << = 1; }
两个排好序的数组,最快的取中间数的办法
有一个类似的更难题目,可以参考
http://www.cnblogs.com/qi09/archive/2011/10/18/2216844.html
realloc free的区别
void* realloc(void* ptr, unsigned newsize);
realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度 如: char* p; p=(char*)malloc(sizeof(char)*20); p=(char*)realloc(p,sizeof(char)*40); 注意,这里的空间长度都是以字节为单位。
free的调用形式为free(void*ptr):释放ptr所指向的一块内存空间。
http://www.cnblogs.com/BlueTzar/articles/1136549.html
面试题=======
Cocos2d-x是怎样实现跨平台?
怎样判断Cocos2d-x代码是否有内存泄露?
Cocos2d-x 3版本的特性?
C++ 11的特性?