C
Don't back
这个作者很懒,什么都没留下…
展开
-
指针(*p++ , (*p)++, *(p++), *p+2)与结构体遍历
1,指针,区分*p++ , (*p)++, *(p++), *p+2,; 指针是一个变量,定义指针变量,占4字节。变量是固定大小内存块的别名,则此内存块(4字节)中存放的是指针要指向的地址空间的首地址。初始化 指针为NULL时,则此处存放的地址为0,如果要用指向别的地方,那么需要与malloc并用,由malloc开辟一段空间,并将该段空间的首地址存放与指针变量中。 *,++;...原创 2020-03-08 17:51:19 · 2758 阅读 · 1 评论 -
linux-kernel, bus总线数据结构分析
设备模型中的三大组件是:总线,驱动,设备。bus, driver, device。数据结构总览。总线除了一些物理总线的抽象,还代表一些虚拟的总线,如platform,所以在理解platform之前,了解bus就显得还有必要了。在/sys/目录下可以看到 cpu总线下的文件cpu/├── devices│ └── cpu0 -> ../....原创 2019-11-28 17:59:59 · 614 阅读 · 0 评论 -
kobject,kset的结构分析
kobject 是设备对象kobject是将整个设备模型连接在一起的基础,类型如下:struct kobject { const char *name; struct list_head entry; struct kobject *parent; struct kset *kset; struct kobj_type *ktype; struct sysfs_dire...原创 2019-11-20 14:50:07 · 649 阅读 · 0 评论 -
va_start,va_list函数的分析及使用
首先,看宏定义typedef char *va_list;//va_list ap;#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd))) //类型检查, 大小//T 为 type, 数据类型#define va_arg(ap, T) (*(T *)(((ap) += (_...原创 2019-11-19 14:41:43 · 1910 阅读 · 0 评论 -
tolower()与ctype.c的表驱动法,strnicmp
都知道用strcpy, strncpy, strcat等函数,这次就是想看看string.c源码怎么写的。先看一部分#include <linux/types.h>#include <linux/string.h>#include <linux/ctype.h>#include <linux/kernel.h>#include ...原创 2019-05-09 15:02:57 · 321 阅读 · 0 评论