C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库

链表就是一个结构体 指针指向自身结构体类型

双向链表插入的时候 先改变自身 再改变两边

双向链表删除的时候 先改变两边 再改变自己

逆序一个单向链表

回调函数

指向函数的指针

4链表的遍历回调用法

// 链表的统一遍历的方法

void for_each(struct node *head,void(*fp)(struct node*node))

 

5数据类型的加强

 

6 数据类型加强的练习

7预处理步骤和宏函数的陷阱

续行符

预处理器的处理过程:

8函数的do-while(0)用法

在if else中就不行了,会报错

因为else前面是两行表达式了

宏定义上面加{}

 

这时候可以用了,但是必须把分号去掉

定义宏函数

这样结尾可以写;(分号)

9中午回顾

10宏函数的操作符

11宏函数debug接口的简单封装

 

12程序中记录日志的标准

13动态库的封装

.dll是windows的动态库

linux下是.so

.dll是最终代码

.lib是告诉编译器dll文件在哪

windows下动态库是一对

linux下是.so

(因为lib文件比较小,先加载进来.. windows的设计

(放在函数前面了)

生成

放到一起

14 调用第三方动态库

.lib和.dll都是二进制文件,看不到源码

连接器,

把.lib文件加进去

15内存检测工具memwatch

 

(windows不用写D linux要加D

属性 然后添加宏

里面重写了malloc

放到HOME里面这个文件里面

linux下有

猜你喜欢

转载自www.cnblogs.com/eret9616/p/10368844.html