文档章节

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

青春无极限
 青春无极限
发布于 2017/05/25 16:37
字数 179
阅读 20
收藏 0
点赞 0
评论 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
博文 104
码字总数 59921
作品 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
链表的设计--单链表逆序开始

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

晨曦之光
2012/04/10
948
0
约瑟夫问题的解法-良好接口的重要性

本文用一个简单的例子来说明接口设计的重要性。使用的是Linux kernel中list_head,顺便说一句,如果你想使用复合模式组织你的对象,那么Linux kernel中的kobject结构是个不错的选择,如果时间...

晨曦之光
2012/04/10
102
0
数据结构(C语言版)第四章:链表

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

fzyz_sb
2013/12/06
0
0
尝试Java加锁新思路:原子变量和非阻塞同步算法

进年以来,并发算法领域的重点都围绕在非拥塞算法,该种算法依赖底层硬件对于原子性指令的支持,避免使用锁来维护数据一致性和多线程安全。非拥塞算法虽然在设计上更为复杂,但是拥有更好的可...

登高且赋
2017/11/27
0
0
面试 7:快慢指针法玩转链表算法面试(一)

面试 7:面试常见的链表类算法捷径 链表是我们数据结构面试中比较容易出错的问题,所以很多面试官总喜欢在这上面下功夫,为了避免出错,我们最好先进行全面的分析。在实际软件开发周期中,设...

nanchen2251
07/12
0
0
android源代码学习 init中的双向链表listnode

在init源代码中双向链表listnode被使用地很多。android源代码中定义了结构体listnode,奇怪的是,这个结构体只有用于链接节点的prev和next指针,却没有任何和”数据“有关的成员变量。那么代...

Genus
2013/02/03
0
0
【译】为什么 context.Value 重要,如何进行改进

原文地址:Why context.Value matters and how to improve it 原文作者:Axel Wagner 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:星辰 校对者:lsvih,leviding ...

临书
2017/09/08
0
0
数据结构(一)——线性表、栈和队列

数据结构是编程的起点,理解数据结构可以从三方面入手: 逻辑结构。逻辑结构是指数据元素之间的逻辑关系,可分为线性结构和非线性结构,线性表是典型的线性结构,非线性结构包括集合、树和图...

yhthu
2017/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MyBatis源码解读之延迟加载

1. 目的 本文主要解读MyBatis 延迟加载实现原理 2. 延迟加载如何使用 Setting 参数配置 设置参数 描述 有效值 默认值 lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延...

无忌
5分钟前
0
0
javascript 类变量的实现

代码如下: function echo(){ for(let i=0;i<arguments.length;i++) console.log(arguments[i]);}function extend(o, p){for (prop in p) {o[prop] = p[prop]}retur......

backbye
9分钟前
0
2
编程语言对比分析:Python与Java和JavaScript(图)

编程语言对比分析:Python与Java和JavaScript(图): 凭什么说“Python 太慢,Java 太笨拙,我讨厌 JavaScript”?[图] 编程语言生而为何? 我们人类从原始社会就是用语言表达自己,互相沟通...

原创小博客
17分钟前
0
0
Akka构建Reactive应用《one》

看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 ...

woshixin
29分钟前
0
0
ffmpeg源码分析 (四)

io_open 承接上一篇,对于avformat_open_input的分析还差其中非常重要的一步,就是io_open,该函数用于打开FFmpeg的输入输出文件。 在init_input中有这么一句 if ((ret = s->io_open(s, &s-...

街角的小丑
30分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
46分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
48分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
58分钟前
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
今天
0
0
Artificial Intelligence Yourself

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流...

孟飞阳
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部