1.考了数组
2.循环链表
3.访问地址
4.中断服务函数的要求
5.const
6.volatile
7.static
8.SPI接口设计
9.芯片手册翻译
10.大端小端格式
11.重点还是在于指针数组上,以及一些数据结构
//-------------------------------------------------------------------------------------
以后的方向就定位驱动开发吧,针对各个平台的,刚开始主要还是先从Linux下手为好,不过最好还是要有C语音基础才好,然后就是多看些操作系统方面的书籍,硬件方面的话加强接口方面的学习才是。对于职业发展方向我还是要专注于一个方向了,不能再乱来了。把驱动做好就够了,兴趣所在。
其实怎么说呢,学习的话还是在于勤奋好学,没有啥技巧,还是多读多看!相信有志者事竟成!!
下面还是就这些问题一一分解吧:
1.数组:
先查查概念,俺还是菜鸟级别的呵呵,调用百度上的概念:
二维数组A[m][n],每个元素的长度为t个字节,设a[p][q]为A的第一个元素,即二维数组的行下标从p到m,列下标从q到n,按“行优先顺序”存储时则元素a[i][j]的地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列优先顺序”存储时,地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节
然后题目是A【6*8】的二维数组,每个元素占的空间为6个字节,基地址为1000
数组的最后一个元素表示为A[5][7]
(1)计算所占的空间:这样套公式就可以了,(5-0+1)*(7-0+1)*6 = 288个字节
(2)计算A[1][4]的第一个字节的地址:
行优先存储也就是先填满一行,然后再换一行继续填充这样计算为:
LOCA[1][4] = 0x1000 + (十进制)((1*8)+ 4 ) * 6 =(十六进制)0x1048
百度上面说是有2种行列顺序,但在《C和指针》这本书中说的是行主序,也就是一行存满后就轮到下一行。
2.虚