- 博客(10)
- 收藏
- 关注
原创 【笔记】printf的输出顺序
学习的时候看到这么一道题目int arr[] = {6,7,8,9,10};int *ptr = arr;*(ptr++)+=123;printf(“ %d %d ”, *ptr, *(++ptr));我最开始以为答案是7,8但是给出的答案是8,8我百思不得其解,因为我还不清楚printf的参数计算顺序,我之前一直以为是从左向右。然后去网上查找,大多数解释是:printf参数运算...
2020-03-24 10:44:21
398
转载 【笔记】typedef常见用法(转)
1.常规变量类型定义例如:typedef unsigned char uchar描述:uchar等价于unsigned char类型定义uchar c声明等于unsigned char c声明2.数组类型定义例如: typedef int array[2];描述: array等价于 int [2]定义;array a声明等价于int a[2]声明扩展: typedef int ar...
2020-03-18 16:55:42
105
原创 【笔记】数组和指针作为参数
首先应该明白两点:1、C语言中,一维数组做参数时,编译器总是把它解析成一个指向数组首元素首地址的指针2、所有非数组形式的数据实参均以传值的形式调用。(对实参做一份备份并传递给函数,函数不能修改实参本身,只能修改传给它的拿份备份)一、数组作为参数下面举一些例子:void fun(char a[10]){ char c = a[3];}int main(void){ char ...
2020-03-06 21:33:16
200
原创 【笔记】二维数组的内存布局
内存都是线性的,那么二维数组的存储是怎样的?a[2][2]的内存布局如下图所示:知道了内存分布,那么有一道例题:int a[5][5];int (*p)[4];p = (int (*)[4])a; //这里要强制转换,不然编译器会报错printf("%d\n",&p[4][2] - &a[4][2]);很明显a[5][5]的内存分布如下:那p的内存分布呢?...
2020-03-06 21:02:19
1616
转载 【笔记】逻辑运算符||与&&的一点知识
代码如下:int i = 0;int j = 0;if((++i > 0) || (++j > 0)){ printf("%d,%d\n",i,j);}结果为i = 1; j = 0。跟预想的不太一样,然后根据书本作者的解释才明白:逻辑运算符只要有一个结果为真,那么结果就为真。而if((++i > 0) || (++j > 0))语句中,(++i &g...
2020-03-03 14:46:32
214
原创 【笔记】C语言的存储类型指示符
在看书时候,看到以下例子:#define INT32 inttypedef int int32;unsigned INT32 i; //OKunsigned int32 i; //errortypedef static int int32; //error然后不是很明白,就在DEVC++测试一下,看看报错是啥。结果为:[Error] conflicting specif...
2020-02-29 16:01:00
854
转载 【笔记】关于const和volatile
关于这方面的内容,我自己经验不够说得不够清楚。但又想记录下来,于是上网找了网友的提问。转自问题帖子:https://bbs.csdn.net/topics/1901460271.volatilevolatile标识一个变量意味着这个变量可能被非本程序的其他过程改变,例如某个访问这一变量的某中断程序。为变量加上这一标识可以禁止编译器的优化,使程序正确地按设计者的意图运行。例如下面的程序,我们将...
2020-02-26 17:23:11
112
原创 【笔记】关于signed关键字的一道题
在看C语言相关书籍时候,遇到一道题,想了好久原因才豁然开朗,记录下来方便以后观看,代码如下:int main(void){ char a[1000]; int i; for(i=0; i<1000; i++) { a[i] = -1 - 1; } printf("%d\n",strlen(a)); return 0;}刚开始乍一看以为是1000,然后觉得不太对,...
2020-02-24 17:54:19
203
转载 【新手上路】Linux驱动学习(二)总线_设备_驱动注册流程
一,注册流程图二,注册流程解释1.首先,设备一般都需要先注册,才能注册驱动。不过现在越来越多的热拔插设备,反过来了,先注册驱动,设备来了再注册设备2.在platform平台上注册好设备和驱动(需要设置好设备和驱动名字)3.platform平台通过match来检测设备和驱动的名字字段,如果相同则调用probe4.probe一般用来设备驱动的初始化,生成设备节点,申请调用GPIO等。到此...
2019-05-20 12:39:09
189
原创 【新手上路】Linux驱动学习(一)初触Module
首先写给自己,刚刚开始学习Linux驱动,并且是用迅为4412开发板跟着教学视频学习的。在这里写下一些记录方便自己回顾,若理解有不对的地方,希望有缘人能够指出。一,Module是什么在很久之前,写device driver 或者进行测试的时候,每次都需要编译生成一次内核,非常的麻烦,这种加载驱动的方式也叫静态加载。而有了module,我们可以先写好module,然后使用insmod命令将...
2019-05-20 10:15:42
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人