学习鸿哥 有关 “指针“的几节内容,有感而发
今天学到鸿哥的有关指针的几个章节。用自己的话做个小总结。第一段内容,有关单片机的指针。
单片机可以有4类指针。1 堆栈指针SP 它是SFR中的一个寄存器,2程序计数器PC 3自定义的指针变量 4 数据指针DPTR .先说第一种“针”,堆栈指针和堆栈区如何理解?我要知道这些内容:1堆栈是一种数据结构,是编译器自动为单片机指定片内RAM的专用一小块空间。CPU对当前PC值压栈或弹栈都是放在这个区域里。堆栈区可以帮CPU实现“先进后出”的动作。堆栈区类似一个开口的容器一样,往容器里放了东西,要取出来的时候都是一直取最上面的一块,因为只有一个开口。这些过程我不需要去理会,因为主要是以下的情况堆栈区会被用到:子程序调用和中断服务时CPU自动将当前PC
值压栈保存,返回时自动将PC值弹栈。
是CPU自动操作一部分,不需要人为干预。接着说第二种指针“程序计数器PC”。用一句话来描述这个PC:一切分支/跳转/调用/中断/复位等操作的本质就是“改变PC值”。接着说第三种指针:自定义的指针变量。跟普通的变量一样,只不过,指针变量存储的是别的同类型的变量的存储空间地址。第四种指针:DPTR。略。
第二段内容:有关编译器
被忽视的编译器
以前学习C语言的时候,C教材一来就是C语言语法,一开始就要遵守各种C语言的规则和约束,心里就有点不自然,也不告诉我为什么,慢慢地我才发现,编译器才是老大,我做的各种事情都要得到它的认同,而且它的规则,约束都是为了帮我,引动我完善,正确地处理好代码,实现功能。然后又帮我生成单片机能识别的目标代码。这样,在单片机上就可以实现我想要的功能了。编译器用心良苦啊!有了这样的感觉我就心甘情愿地接受约束。然后我又问自己,编译器为什么那么厉害,这些动作怎么完成的呢?C51语言与标准的C语言有什么差异的地方?我需要哪些知识点来保证把2者的相同和不同之处区分开来和用得放心,不至于心里老是有点疑问?
回答这些问题:我觉得自己知道这些内容就足够了:用C语言编写单片机应用程序与编写标准的C语言程序的不同之处就在于根据单片机存储结构及内部资源定义相应的C语言中的数据类型和变量,其它的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同。即支持符合ANSI标准的C语言程序设计。C语言的语法规则和结构等等内容都是由ANSI(美国国家标准学会)制定的行业准则。其实就是用工具来生产工具,具体怎么制定就不是我需要知道的了。也就是说我再也不用担心C51还有多少不见得光的内容了。我只要知道C51的一些扩展数据类型的定义,其它的可以继续沿用曾经学过的标准C语言知识。
第三段内容:我要搞清这3者的关系:1 代码编辑器 2C51编译器3单片机 我在代码编辑器敲代码是为单片机的功能而敲,不是为C51编译器而敲,C51编译器只是提供语法规则,约束和代码生成的平台。以前我敲代码的感觉是模糊的,没有这种感觉。这段内容是我以前学习C语言 不安心的地方,后来,懂得了唯物辨证的哲学思维,对身边的事物和学习的知识进行辨证,通过不断地与自己对话,反复询问自己的内心:觉得哪里不安心,就思考哪里。
以上一点学习总结,请鸿哥批评,小傅。
你是善于通过现象去思考它幕后规律的人,看到你进步我很开心。
页:
[1]