ifndef

《学习C++》基本概念之预处理器(c程序预处理)

预处理器在C++翻译过程的第三步“预处理令牌序列至令牌序列”中执行。这个过程在真正编译过程之前,产生的预处理结果交由编译器进行编译。预处理器通过识别一系列的预处理指令(preprocessing directive),进行相应的操作。预处理指令的格式为:以‘#’字符开头,后接标准定义的指令名(directive name),再后接相应的指令参数(argume …

技术栈:链表竟然还能这样玩?(链表动画演示)

初识内核链表我们都知道Linux内核里的双向链表和学校里教给我们的那种数据结构还是些不一样。Linux采用了一种更通用的设计,将链表以及其相关操作函数从数据本身进行剥离,这样我们在使用链表的时候就不用自己去实现诸如节点的插入、删除、遍历等操作了。当然,Linux也是从2.1.x内核开始才对链表进行了这样的统一,和我们目前看到的样子几乎差不多:struct&n …