网络通信编程笔试:
PostMessage 与 SendMessage 的区别
PostMessage 只是把消息放入队列,不管其他程序是否处理都返回,然后继
续执行 ;
而 SendMessage 必须等待其他程序处理消息后才返回,继续执行。
PostMessage
的 返 回 值 表 示 PostMessage
函 数 执 行 是 否 正 确 ; 而
SendMessage
的返回值表示其他程序处理消息后的返回值。使用这两个发送
消 息 函 数 的 最 重 要 的 是 要 看 你 的 程 序 是 否 要 对 消 息 的 滞 后 性 关 注 否
,PostMessage
会造成消息的滞后性 ,
而 SendMessage
则不会 , 但如果
SendMessage
消息处理失败 ,
则会造成程序停止 !
程序设计思想及知识典藏:
1.
数组和链表的区别
数组:数据顺序存储,固定大小;链表:数据可以随机存储,大小可动态改变
2.
类的静态成员和非静态成员有何区别?
类的静态成员每个类只有一个,非静态成员每个对象一个
3. 进程死锁的原因:资源竞争及进程推进顺序非法
3.
死锁的 4 个必要条件:互斥、请求保持、不可剥夺、环路
4.
嵌入式系统中经常要用到无限循环,你怎么用 C 编写死循环:while(1){}或者 for(;;)
6. 一个 32 位的机器,该机器的指针是多少位
指针是多少位只要看地址总线的位数就行了。80386 以后的机子都是 32 的数据总线。
所以指针的位数就是 4 个字节了。
7.语句 for( ;1 ;)有什么问题?它是什么意思?
答:和 while(1)相同。
8. 写出 float x “
”
与 零值 比较的 if 语句:if(x>0.000001&&x<-0.000001)
9 什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于 1
10.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源
11. 什么函数不能声明为虚函数?constructor
12. static 有什么用途?(请至少说明两种)限制变量的作用域和设置变量的存储域
笔试面试自己总结:
0127;纯虚函数如何定义?使用时应注意什么?
virtual void f()=0;是接口,子类必须要实现
② String 类的实现(常考)
已知 String 类定义如下:
class String
{
public:
String(const char *str = NULL); // 通用构造函数
String(const String &other); // 拷贝构造函数
~ String(); // 析构函数
String & operater =(const String &rhs); // 赋值函数