background image

网络通信编程笔试:
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); // 赋值函数