摘要:
inline内敛1.类似于C中的#define 在C++中,提供了inline函数来代替C中的宏定义。(通常可以使用const来代替单纯变量的宏定义,它可以提供类型检查。对于形似函数的宏,最好改用inline函数来替换宏定义。) 编译器最优化机制通常被设计用来浓缩那些“不含函数调用“的代码,所以当你inline某个函数时,或许编译器就因此有能力对它执行语境相关最优化。2.效率问题 inline函数同#define宏定义一样,都是以函数本体做替换,这样做可能增加你的目标码(object code),从而可能造成代码膨胀(代码膨胀会导致额外的换页行为,降低指令高速缓存装置的击中率,带来效率损... 阅读全文
摘要:
树 树形结构是一类非常重要的非线性结构,它可以很好地描述客观世界中广泛存在的具有分支关系或层次特性的对象,因此在计算机领域里有着广泛应用,如操作系统中的文件管理、编译程序中的语法结构和数据库系统信息组织形式等。树的相关定义节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶节点或终端节点:度为零的节点;非终端节点或分支节点:度不为零的节点;双亲节点或父节点:若一个结点含有子节点,则这个节点称为其子节点的父节点;孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;兄弟节点:具有相同父节点的节点互称为兄弟节点;节点的层次:从根开始定义起,根. 阅读全文
摘要:
htons#include <arpa/inet.h>uint16_t htons(uint16_t hostshort);htons的功能:将一个无符号短整型数值转换为网络字节序,即大端模式(big-endian)参数u_short hostshort: 16位无符号整数返回值:TCP / IP网络字节顺序.inet_addr()功能:将一个点分十进制的IP转换成一个长整数型数(u_long类型)原型:in_addr_t inet_addr(const char *cp); 参数:字符串,一个点分十进制的IP地址返回值:如果正确执行将返回一个无符号长整数型数。如果传入的字符串不是 阅读全文
摘要:
1.由名字查找某个熟知的端口struct servent{ char *s_name; /* official service name */ char **s_aliases; /* other aliases */ char s_port; /* prot ofr this service */ char *s_proto; /* protocol to use */};struct servent *sptr;sptr = getservbyname("smtp","tcp"));2.由名字查找协议struct pr... 阅读全文
摘要:
1.对于Linux系统,System V提供了运行级别的概念 对于Linux系统上的服务,这些服务的System V脚本文件都是存放在 /etc/rc.d/init.d 这个目录下。 命令service可以调用指定服务的System V脚本,并执行指定的动作。service 服务名 [start... 阅读全文
摘要:
内存管理1.页 物理页作为内存管理的基本单位。内存管理单元通常以页为单位进行处理。 通过结构体page来表示系统中的每个物理页。2.区 由于页位于内存中特定的物理地址上,所以不能将其用于一些特定的任务,故内核把页划分为不同的区。硬件在内存寻址方面的问题:一些硬件只能通过内存地址来执行直接内存... 阅读全文