1.extern: 定义在变量或函数之前,表示变量或函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找定义。
2.::: 域名解析符
返回值类型名 类名 :: 函数成员名(参数表)
{
函数体
}
这是在类内声明后在类外定义的一种方法。一定要在类中声明。
: 是声明基类
3.pragma one
可保证头文件只被编译一次
4.enum
枚举类型
5.getTickCount函数
返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法的执行时间。返回值以32位的双字符型Dword存储。
6.测试X是否被宏定义过
#ifndef<X>
#define<X>
。。。
#endif
7.BOOL与bool的区别
第一,bool是bool类型,BOOL是Int类型
第二,bool是1字节,BOOL不一定,一般是4字节
第三,bool取值为true和false,对应1和0,BOOL取值为TRUE和FALSE,对应0与非0
bool是c++的一种数据类型
而BOOL是微软定义的typedef int BOOL。返回值有TRUE,FALSE,ERROR,为三值逻辑,>1为TRUE,=0为FALSE,=-1为ERROR
7.DWORD类型
就是unsign long/int 在win32下是4字节
8.stack<BTreeNode* > st;
stack<T>是模板栈的类型,其中栈节点的类型是T
stack<BTreeNode* > st; 定义了一个栈st,其中每个节点的类型是BTreeNode* 。st是用来存放树节点指针的一个栈
9.assert 断言
assert 宏的原型定义在#include"assert.h"中
ASSERT ()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。
10.容器之 list
list是双向循环链表。在存储复杂类型和大量元素的情况,list更有优势。允许快速插入和删除,但是对于随机访问比较慢
11.string转char
string str = " ";
char* p = str.c_str();
12.为什么需要三次握手
为了保证服务端能接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。
三次握手保证了两边都是闭环。