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

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

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

逆序一个单向链表

回调函数

指向函数的指针

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下有

C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库的更多相关文章

  1. C语言的本质(17)——回调函数

    如果函数的参数是一个函数指针,我们可以通过这个函数指针传递一个函数的地址给另外一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数(Callback Function).回调函数不是由 ...

  2. C语言高速入口系列(七)

    C语言高速入口系列(七) C语言指针进阶 本章引言: 在前面第5节中我们对C语言的指针进行了初步的学习理解;作为C语言的灵魂, C指针肯定没那么简单,在这一节中,我们将会对指针进行进一步的学习,比方二 ...

  3. Go语言【第七篇】:Go函数

    Go语言函数 函数是基本的代码块,用于执行某个任务.Go语言最少有个main()函数,可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务.函数声明告诉了编译器函数的名称,返回类型和参数.Go ...

  4. 三种语言(c++、as、lua)中函数的差异性

    对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...

  5. c语言指针函数与函数指针

    例一:指针函数 指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针 类型标识符    *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个 ...

  6. R语言学习 第八篇:常用的数据处理函数

    Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...

  7. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  8. typedef void(*Fun) (void)是什么意思 函数指针(回调函数) 和函数对象总结

    https://blog.csdn.net/FreeApe/article/details/49124043 bool (*pf)(const string &,const string &a ...

  9. 【C语言C++编程入门】程序的可读性和函数的调用!

    一个简单程序的结构 你已经看过一个具体的例子,下面可以了解一些 C程序的基本规则了. 程序由一个或多个函数组成,其中一定有一个名为 main()的函数.函数的描述由函数头和函数体组成.函数头包括预处理 ...

随机推荐

  1. UDP bind() IP和prot

    http://blog.csdn.net/qq_28171461/article/details/69523604

  2. ubuntu--Supervisor的简单使用

    安装,这个程序使用python写的 sudo apt-get install supervisor 配置一个你需要的配置文件 //进入 /etc/supervisor/conf.d文件目录,配置一个r ...

  3. 多个线程作用于同一个runnable对象

    多个线程作用于同一个runnable对象 学习了:https://www.cnblogs.com/ligang305/archive/2012/08/10/2632126.html http://as ...

  4. 本地jar安装至maven仓库

    本地jar安装至maven仓库 一般不建议通过这种方式配置依赖,通常做法建议你把本地包安装到maven仓库,命令如下: mvn install:install-file-DgroupId=com.ht ...

  5. 【cl】selenium实例一:打开百度,获取第四个标题

    /*创建类的时候是TestNG Class*/ package Selenium_lassen; import static org.junit.Assert.*; import java.util. ...

  6. Running the app on your device

    So far, you've run the app on the Simulator. That's nice and all but probably notwhy you're learning ...

  7. 怎样在Android.mk上加宏定义【转】

    本文转载自:http://blog.csdn.net/ttxgz/article/details/7591282 很简单, LOCAL_CFLAGS += -DWHATEVERDEFINE 就可以了

  8. 【BZOJ 2351】 Matrix

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2351 [算法] 哈希 [代码] #include<bits/stdc++.h& ...

  9. wampserver配置多站点

    1.打开C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf(因安装的路径而异),查找listen 80 下面加上listen 8080 2.然后加上 < ...

  10. [牛客网练习赛 45 F] Magic Slab 解题报告 (最大权闭合子图)

    interlinkage: https://ac.nowcoder.com/acm/contest/847/F description: solution: 最大权闭合子图; 每个单元格看成一个正权点 ...