- 博客(10)
- 资源 (4)
- 收藏
- 关注
转载 函数指针
<br />函数指针是指向函数的指针变量。 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的参数。<br />目录<br />方法<br />指针函数和函数指针的区别<br />关于函数指针数组
2011-04-29 16:51:00 759
转载 函数指针和指针函数区别
1 函数指针变量在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为"函数指针变量"。
2011-04-29 16:23:00 978 1
转载 Linux内核代码-结构体初始化
<br />Linux内核代码 结构体初始化<br />2011-01-24 20:40出处:中国IT实验室作者:佚名【我要评论】<br />[导读]在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。<br /> 在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个
2011-04-28 10:43:00 1222
原创 NFS无法启动根文件系统的解决
<br />为了调试驱动,整了一天的NFS启动根文件系统出了各种问题,后来还是一一解决,不过还不太完美,因为不能使用交换机,我只能用PC和目标板直连,导致我上网很麻烦<br />无法挂载问题一:<br />IP-Config: Cannot add default route (-101).<br />Looking up port of RPC 100003/2 on 192.168.0.7<br />eth0: link up, 100Mbps, full-duplex, lpa 0x41E1<br /
2011-04-09 20:27:00 7537
转载 linux内核链表的实现
<br />本文会记录一些linux内核实现中使用到的一些小技巧,工具等等,会根据学习进度不定时更新本文......<br />双向循环链表<br /> 第一个想写的是linux的双向循环链表(写这个的原因是因为最近学习epoll的内核代码实现,进而需要了解linux的等待队列,这其中也用到了双向循环链表,稍后也会分析linux的等待队列)<br /> linux的双向循环链表之于传统的双向循环链表,其优点是:将其从具体的数据结构中提取出来构成一种通用的循环链表实现,在linux中表现形式为:<br />
2011-04-06 15:37:00 1521
转载 typeof关键字简介
<br />typeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别:<br />声明<br />函数声明符中的参数类型链表和返回类型<br />类型定义<br />类型操作符s<br />sizeof操作符<br />复合文字<br />typeof实参<br />编译器接受带双下划线的关键字:__typeof和__typeof__。本文中的例子并没有遵循使用双下划线的惯例。从语句构成上看,typeof关键
2011-04-06 15:17:00 1214
转载 内核链表使用--删除链表节点
<br />内核链表使用--删除链表节点<br />当我们使用遍历的方法来删除链表时:<br />list_for_each(pos, &student_list)<br />{<br /> list_del(pos); <br />}<br /><br />list_for_each(pos, head)这个宏定义是用来遍历链表的,通过其第一个参数pos来删除链表节点,但是,运行后就会出现以下错误:<br /><br />Unable to handle kernel paging
2011-04-06 14:28:00 2695
转载 [转]kmalloc, vmalloc分配的内存结构
<br />[转]kmalloc, vmalloc分配的内存结构<br /><br />对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。<br /> 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。<br /> 内核空间中,从3G到vmalloc_s
2011-04-05 10:44:00 1204
转载 32位cpu寻址小结
<br />32位cpu 地址线扩展成了32位,这和数据线的宽度是一致的。因此,在32位机里其实并不需要采用"物理地址=段:偏移"这种地址表达方式。原来在16位机里规定的每一个段不大于64kb在32位机里也不是必要的。所以,对于32位机来讲,最简单的方法就是用一个32位数来标识一个字节的存储地址,寻址时只要给出一个32位数就可以直接找到地址。这种地址储存模型就属于"平展储存模型"。<br /> 但是,新产品一般都希望遵循"向下兼容"这个原则。所以,32位机里完整的保留了16位寻址模式。即:寻址能力为1M;
2011-04-03 10:20:00 1125
原创 基于S3C2440的ARM9基础程序设计及分析
基于S3C2440的ARM9基础程序设计及分析-------JustDo最近学习了ARM9基础程序的设计,记录下所学心得,希望对初学者提供一些帮助。学习ARM程序要注意方法,先去芯片手册的相应模块部分的结构原理框图,搞清楚所使用的模块的基本原理,然后根据框图搞清楚需要设置哪些对应的寄存器,再根据时序图搞明白相应寄存器应该怎样设置,再接着理清楚你所写程序的大概流程,最后就可以动手写程序了。
2011-04-01 16:34:00 2158
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人