c++ 笔记3

来源:互联网 发布:淘宝租手机 编辑:程序博客网 时间:2024/06/07 22:51
 
1:键盘消息的处理:输入信号-〉键盘处理器-〉键盘处理器申请中断,同时系统获得字符码(扫描码)
 扫描码:低七位表示那个键被按下,而最高为是代表被按下还是释放
2::动态分配内存
C: malloc free
C++:new new[] delete delete[]
目前比较流行的解决方法就是在系统提供的内存分配函数上面,写自己的内存管理函数。在C语言里重写malloc和free,对每个内存的分配和使用情况做跟踪记录。在C++里则是重载操作符 new和delete. 通过提供自己的库,可以很容易检测到memory leakage. 通过在程序开始的时候从操作系统分配到一块足够大的内存,在此基础上进行内存管理,还可以有效的防止内存泄漏,并且还可以支持对象复用技术,提高游戏的速度和稳定性。当然,你也可以使用一些memory leakage的检测工具来检查内存使用情况(比如 firefox memory leakage detection tool 或者 Visual leak detector)。
实际上,在游戏程序设计中,很少使用动态的内存分配,大部分的内存都是事先分配好的。即使是链表或者是树这一类的数据结构,也是用数组进行有效的模拟。
 
A: 内存对齐问题
B: 结构数组问题
3: int i;
for(i = 0; i < 100; i++)
{
    // do something
}  
替换成
i = 100;
do
{
// do something
}while(--j);
              
4:if语句
在写if语句的时候,一定要把最容易成立的条件放在最前面进行判断。
   if语句另外一个需要注意的地方是在进行多重条件判断的时候,要安排好顺序。
5:函数问题  
 A: 首先,对于函数的参数(特别是指针),如果函数内部不会修改其指针的内容,一定要用const来定义参数类型
B: 传递给函数的参数越少越好,最好就是一个指针,指向一个structure
6: 条件编译砸头文件的应用有效的解决了宏和变量的重复定义问题。