- 博客(13)
- 收藏
- 关注
原创 数据结构-链表
#include <stdio.h> //#incldue <malloc.h> #include <string.h> #include <stdlib.h> typedef struct Node { int data;//数据域 struct Node *pNext;//指针域 }NODE,PNODE;//NODE 等价于struct Node,PNODE等价于struct Node PNODE create_list(int num) { int
2020-06-20 18:25:55
170
原创 数据结构-堆栈
#include <stdio.h> #include <stdlib.h> /node/ typedef struct Node { int data; struct Node* pNext; }NODE,*PNODE; typedef struct Stack { PNODE pTop;//栈顶 PNODE pBottom;//栈底部 }STACK,*PSTACK; PNODE initStack(PSTACK pS) { PNODE pHead; pHead = (PNODE)
2020-06-20 18:24:12
183
原创 循环队列
#include <stdio.h> #include <stdlib.h> #include <string.h> #define ARRAYSIZE 6 typedef struct Queue { int *pBase; int front; int rear; }QUEUE,*pQueue; void init(pQueue q) { q->pBase = (int*)malloc(sizeof(int)*ARRAYSIZE); q->front =
2020-06-20 18:21:40
181
原创 C语言 数组指针初始化
char m[3][4]; m[3][4]={“asd”,“fgh”,“jkl”}; 当然不行,不管从初始化器,还是从原理上来讲都不正确,首先a[3][4]表示的是数组中第4行第5个元素,请问,可以对数组中具体的一个元素赋这么长一串值吗?所以不能这样赋值。第一种写法是属于初始化,初始化会自动为数组中的每一个元素赋正确的值。 数组指针初始化方法: int (*p)[4];; char a[3][4]; p=a; p=&a[0]; p=a+1; p=&a[1]; //都正确 p=a[0]; //
2020-06-20 10:41:03
6599
原创 C语言 二维数组
输出矩阵: #include <stdio.h> void main(void) { int i; int j; int num1; int num2; int data[][4] = {{1,2,3,4}, {4,5,6,7}, {8,9,10,11}}; num1 = sizeof(data) / sizeof(data[0]); num2 = sizeof(data[0]) / sizeof(int); printf("num1 = %d\n",num1); printf("num2 =.
2020-06-19 19:53:03
353
1
原创 C语言-链表
#include <stdio.h> //#incldue <malloc.h> #include <string.h> #include <stdlib.h> typedef struct Node { int data;//数据域 struct Node *pNext;//指针域 }NODE,PNODE;//NODE 等价于struct Node,PNODE等价于struct Node PNODE create_list(int num) { int
2020-06-07 16:21:03
115
原创 kbuild文件
kconfig 菜单配置项 eg: config ARCH_IXP23XX(名字省略了config) bool “IXP23XX-based” depends on MMU select CPU_XSC3 help Support for Intel’s IXP23XX (XScale) family of processors config关键字表示新定义一个菜单项,后面跟着菜单项的名字 可以用...
2020-02-04 11:18:33
419
原创 字符串操作函数
1:查找函数 char *strchr(const char *str, int c)在参数str所指向的字符串中搜索,第一次出现字符C(一个无符号字符) 的位置。 成功:返回在字符串str中第一次出现字符C的位置 失败:返回NULL char *strstr(const char *haystack,const char *needle)在字符串haystack中查找第一次出现字符串needle...
2020-02-03 15:30:45
172
原创 函数指针,指针函数的用法
1:指针函数 int g_value = 100; int *Getvalue()------指针函数返回值是int型指针 { int m = 10; return &g_value; //return &m;---------注意局部变量返回,但函数结束了,局部变量不可控所以要返回全局变量 } int main() { int *p = NULL; p = Getvalue();...
2020-01-12 14:46:16
159
原创 C语言结构体内存大小
三个准则: 1:结构体变量的首地址能够被其最宽基本类型成员的大小整除; 2:结构体变量中成员的偏移量必须是成员大小的整数倍 3:结构体变量大小必须是所有成员大小的整数倍,即所有成员大小的公倍数 eg: 结构体 地址 变量 说明 struct st1 { 1000 char c1; 1001 char c1 一个字节 char c2; 1002 ...
2020-01-11 22:04:18
464
原创 C语言数据类型隐式转换
举个栗子: unsigned int a = 20; signed int b = -130; a > b 还是 b > a 实验证明b > a; b = -130 int 先转化为unsigned int再与a比较 隐式转换四种情况 1:算式运算式中,低类型能够转换为高类型 2:赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它 3:函数调用中参数传递时,系统...
2020-01-11 18:55:47
242
原创 c语言内存相关
1:malloc 函数 void malloc(size_t size) 从堆里获得空间,向系统申请分配指定size个字节的内存空间,返回类型是void类型,void表示未确定类型的指针, void类型可以通过类型转换强制转换为任何其它类型指针。 2:free函数 void free(void ptr) 释放指针指向的内存,而不是指针,ptr 指向一个要释放内存的内存块。 用法: type p; ...
2020-01-11 17:38:47
135
原创 块设备驱动的代码框架--block层
块设备驱动的代码框架--block层 fs:ll_rw_block 为文件系统对block层的接口通过submit_bh提交buffer head;在submit_bh里通过buffer_head构建bio调用submit_bio提交bio 块设备层:submit_bio调用gener...
2020-01-05 17:05:39
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅