C语言如何实现C++的成员函数
- C++成员函数是把this指针传进去,来操作类成员的;所以可以通过C语言的函数指针来实现
项目中碰到的难题?具体如何解决?你在解决问题中主要扮演角色?性格缺点?
- 优点:善于发现和解决问题,非常注意细节,肯付出肯努力,能够承受一定的工作压力
- 缺点:口才不是很好,可能做软件开发的原因,性格比较偏向文静,以后我会主动多跟身边人交流,提高提高自己的口才
内联函数
- 内联函数是指用inline关键字修饰的函数;内联函数是在编译时将函数体嵌入到每个调用处,编译时,类似于宏替换,省去了函数调用和返回时的开销;但是内联函数具有普通函数的特征:参数检查,返回类型等等;对于频繁执行和小内存空间的函数非常受益
笔试编程题
公司了解?加班的看法?
MTK是全球著名的IC设计厂商,主要业务是无线通讯及数字多媒体领域,消费电子,
我首先会争取在工作时间内把自己的工作完成,但是如果项目急,时间紧,为了项目的按时交付,加班也是很有必要的,我很乐意接受
对面试职位的理解
为什么选择MTK?为什么要来深圳?
- MTK作为全球领先的IC设计商,主要业务涵盖消费电子,移动通讯讯等等,非常有前景的方向,与自己的研究方向和兴趣都很匹配,我相信自己能在MTK这个大平台能有更好的发展,为MTK的发展助力
- 深圳是一个年轻的城市,充满激情和活力,年轻人,我想在这里实现自己的梦想
多线程编程注意什么?
- 线程的优先级:当控制线程是与最终用户交互的界面线程时更是如此
- 防止栈溢出:不再函数体内定义特别大的栈变量;传递参数(类或结构体)使用传指针或引用
- 提高控制线程的响应速度
- 注意信号量的使用
项目中的收获
- 对于专业技能,自己的掌握的理论知识在实践中得到了检查,掌握得更加扎实
- 解决问题的能力,细心,耐心
- 团队合作
tcp数据传输如何保证安全性
- tcp是一种面向链接的、可靠地字节流服务,
- 超时重发:tcp发送一个段后,会启动定时器,等待目的端确认收到报文段,如果不能及时收到确认,将重发
- tcp将保持它首部和数据的检验和,这是一个端到端的检验和,检验数据在传输过程中是够发生变化
- tcp对失序数据进行重新排序,然后才交给应用层:tcp报文是通过ip数据报来传输,ip数据报的到达可能会失序
- tcp提供流量控制:tcp连接的每一端 都有固定大小的缓冲区,tcp接收端只允许另一端发送接收端缓冲区所能容纳的数据
循环链表判断环的位置:O(n)的解法是定义两个指针,一个指针一次走两步,一个指针一次走一步,如果有环肯定会发生重合,没有就会一直走到链表尾部
Node* hasLoop(Node* head)
{
if(head == NULL)
return NULL;
Node* slow = head;
Node* fast = head->next;
while(fast != NULL && fast->next != NULL)
slow = slow->next;
fast = fast->next->next;
if(slow == fast)
return slow;
return NULL;
}
左旋字符串:把字符串看成两段,交换两段的位置
void Loop_Right_Move(char* str, int steps)
{
int length = strlen(str);
int n = steps % length;
char temp[256];
strcpy(temp,str+length-n);
strcpy(temp+n,str);
*(temp+length) = '\0';
strcpy(str,temp);
}
void Loop_Left_Move(char* str,int steps)
{
int length = strlen(str);
int n = steps % length;
char temp[256];
strcpy(temp,str+n);
strcpy(temp+(length-n),str);
*(temp+length) = '\0';
strcpy(str,temp);
}
int to char *的程序
- 初始化字符串为空;如果整数为0就输出0,结束
- 将当前整数除以10,得到余数和商
- 将余数转换为一个字符,把该字符接到字符串尾部
- 如果商不为0,把它当做新的整形数,循环上面2步
- 将字符串中的字符按放入顺序逆序输出
C和C++的区别
- C和C++最大的区别在于解决问题的思想方法不一样:C是结构化语言,它的重点是算法和数据结构;C程序设计首先考虑的是如何通过一个过程,对输入进行运算得到输出,而C++是面向对象语言,首先考虑的是如何构造一个对象模型,通过获取对象的状态信息得到输出
- 对于语言本身,C是C++的子集,C++是由C语言扩展得来的
- C++增加了很多关键字:bool,typename,类型转换关键字
- 内存分配:C++是使用new和delete进行动态内存分配
- 增加字符串类型
- 异常处理机制
- 函数重载
- 默认参数
- C++允许变量在使用之前再定义,而C必须在作用域开始的位置定义变量
- 引用
字符串拷贝
char* strcpy(char* dest, const char* src)
{
assert(dest == NULL && src == NULL);
char* ret = dest;
while((*dest++ = *src++) != '\0');
return ret;
}