回 帖 发 新 帖 刷新版面

主题:[讨论]写给C语言初学者的建议(转)

很多c语言的初学者可能会碰到很多问题,最大的问题是没有经验,也不知从何提高,根据我多年的经验和给别人面试的结果看,很多人的问题都在于语法不熟练,没有经验。
标准C语言语法其实并不多,但是很多c编译器为了实际工作中需求增加了很多新特性,这些对于已开始,并不需要掌握。
1,c语言的变量。对于变量很多人都知道,只要学过的,都很清楚是怎么回事。但是对于变量在实际运行中的分配空间并不知道,如char一个字节,int 4字节,short 2字节,并且在不同的操作系统下会有些许差异。另外指针一般都是4个字节。
同样的道理,变量的类型就是和分配空间密切相关的。要掌握(强行)类型转换的本质,我想你一定知道了,对了,无非是访问空间不同了。值呢?
地址对齐,align关键字,为了更快速访问存储器。和大小端一样这是和存储器相关的,当然也和cpu相关。
2,指针。这个是最头疼的问题,也是常常理解不深刻的问题。其实指针就是地址,为了方便和节省空间,我们定义一个指针,让他指向我们想访问的地址,然后操作。指针也是有类型的,通常我们定义和要访问变量相同的类型。
3,函数。函数就是功能代码,对变量进行操作,变量对应的就是你要访问的对象,最终都是写到计算机的寄存器中的。所以需要对计算的芯片的寄存器(功能)需要比较好的理解。如intel8086系列的一些寄存器,如何使用就需要看相关的spec.基本的功能就是,给出你要访问的地址,然后向该地址读写值。
好好的谢你的printf()函数,这个函数可以告诉你很多,如sizeof(long),你知道这个值么?
4,流程。很重要的一点就是思路,流程。其实看一规范,读一份spec.很简单。关键是你如何把spec上所标示的功能写成代码。这就需要思路,这是最基本的。
其实也很简单,只要找对地址,然后向地址写你想要的功能(spec)。
5,存储器。cpu之外的所有的设备都可以没有,但是存储器不能没有。小到寄存器,达到硬盘。对存储器的理解很重要。其实没有什么重要的。就是存储数据和代码的地方。cpu会从存储器中去取指令和数据。所以对存储器要了解,了解基本结构,设计原理,如果可能的话了解一些简单的时序图和原理图。最基本如PN节,单位存储单元,菊花链等等。
除此之外,对于通常的文件系统也要了解,一般入fat,ext2,cdfs,ntfs等要了解一下。这个有助于了解存储器是如何被管理的。文件系统的读写read,write,open close,这些函数是必须的。
内存是一类特殊的存储器。通常只在运行的时候使用,使为了得到更好的性能。内存中有一个概念,其实是操作系统的叫地址重映射,因为在外存上的地址和内存中的地址可能不一样。这就需要地址重映射。可以回去看一下操作系统的课本。
另外对于内存的分配malloc free等等函数要掌握。
6,引导。只有一句话,把你要的代码放在特定的地方,然后引导程序会将你的代码copy到内存然后remap一下,开始运行你的系统。 

回复列表 (共3个回复)

沙发

嵌入式处理器结构总线种类及嵌入式开发板1 http://www.uplooking.com/video/play/6065/
嵌入式处理器结构总线种类及嵌入式开发板2 http://www.uplooking.com/video/play/6064/
汇编语言 C语言演示 交叉编译 及内存管理1 http://www.uplooking.com/video/play/6063/
汇编语言 C语言演示 交叉编译 及内存管理2 http://www.uplooking.com/video/play/6062/
汇编语言 C语言演示 交叉编译 及内存管理3 http://www.uplooking.com/video/play/6061/

更多视频学习资料~~~QQ:1152565963

板凳


走近嵌入式 嵌入式产品开发过程 http://www.uplooking.com/video/play/6060/
嵌入式处理器种类 http://www.uplooking.com/video/play/6059/
嵌入式开发学习基础 http://www.uplooking.com/video/play/6058/
嵌入式开发概念及嵌入式行业职业划分1 http://www.uplooking.com/video/play/6057/
嵌入式开发概念及嵌入式行业职业划分2 http://www.uplooking.com/video/play/6056/
嵌入式开发概念及嵌入式行业职业划分3 http://www.uplooking.com/video/play/6055/
嵌入式处理器DataSheet及开发板结构1 http://www.uplooking.com/video/play/6054/
嵌入式处理器DataSheet及开发板结构2 http://www.uplooking.com/video/play/6053/

3 楼

Linux嵌入式开发视频之C语言基础 
类型运算符表达式1 http://www.uplooking.com/video/play/6052/
类型运算符表达式2 http://www.uplooking.com/video/play/6051/
类型运算符表达式3 http://www.uplooking.com/video/play/6050/
控制流1 http://www.uplooking.com/video/play/6049/
控制流2 http://www.uplooking.com/video/play/6048/
函数与程序结构1 http://www.uplooking.com/video/play/6047/
函数与程序结构2 http://www.uplooking.com/video/play/6046/

更多嵌入式学习资料、红帽认证~~~QQ:1152565963

我来回复

您尚未登录,请登录后再回复。点此登录或注册