文档章节

关于链表和指针变量的使用说明,可用于框架设计

青春无极限
 青春无极限
发布于 2017/05/25 16:37
字数 179
阅读 20
收藏 0
首先定义一个链表

typedef struct Lianbiao
{
   struct Lianbiao *next;
   bool (*pFUNC)(u4,void*,void*)
   ...........
}
声明下链表
Lianbiao caonima[256];
int index = 0; 这个事链表的索引,表示到哪个链表了;

然后写链表函数
void lianbiaohanshu()
{
    Lianbiao *pTBL;
    if(index == 256)//表示到头了
    {
        return ;
    }
    
    pTBL=&caonima[index];
    .......赋值操作
    if(index)
    {
       pTBL = &caonima[index-1];
       pTBL->next=&caonima[index];    上一表的next指向本表
    }
    index++;
}

int (*pFUNC) (int,int)
表示定义了一个指针变量指向函数 int (*)(int ,int )
如让 pFUNC = dealwithapple;
那么调用的时候,(*pFUNC)(a,b)就相当于调用
 dealwtihapple(a,b);
两个用在结构体里相当方便;

 

© 著作权归作者所有

共有 人打赏支持
青春无极限
粉丝 0
博文 107
码字总数 63829
作品 0
卢湾
程序员
深入分析 Linux 内核链表

一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链 表具有更好的动态性,建立链表...

nothingfinal
2012/02/01
0
0
#define list_entry(ptr, type, member) \ container_of(ptr, type, member)

#define containerof(ptr, type, member) ({ const typeof( ((type )0)->member ) mptr = (ptr); (type )( (char )_mptr - offsetof(type,member) );}) 该宏在Linux内核代码(版本2.6.22)中定......

B_ice
2016/11/04
15
0
Redis设计与实现系列-基本数据结构-链表和压缩列表

关于《Redis设计与实现》读书笔记 链表作为一种非常友好的数据结构在很多高级编程语言中都有内置,然而C语言中没有没有链表这种数据结构,在redis中redis自行设计了一套链表数据结构用于存储...

申文波
07/31
0
0
数据结构(C语言版)第四章:链表

4.1 指针 实际上并不推荐使用malloc和free,使用malloc还简单,但是当指针进行移动的时候,你如何确定在哪个地址上free内存,则是个大难题. 我们写个正常的malloc和free程序: #include <stdio.h...

fzyz_sb
2013/12/06
0
0
链表的设计--单链表逆序开始

这个问题仅仅可以考察人们对c语言特别是指针的熟悉程度,在实际编程中没有任何的意义,单链表逆序无论如何都要花费大量的时间,如果非要这么做为何不用空间来换时间,比如用双链表,然而如果...

晨曦之光
2012/04/10
948
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
14分钟前
0
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
15分钟前
0
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
19分钟前
0
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
2
0
开发5分钟,调试2小时 - 该如何debug?

几年来我在答疑群、论坛、公众号、知乎回答的各种问题,没有一万也有八千。其中有三分之二以上都是在帮人看报错,帮人 debug(调试代码)。 可以说,会不会 debug,有没有 debug 的意识,懂不...

crossin
昨天
3
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部