您的位置:网站首页 > 电器维修资料网 > 正文 >
C语言编程时的注意事项
★★★★★【文章导读】:C语言编程时的注意事项具体内容是:1)关于设置指针SP的问题。编译器在把所有变量和缓冲区赋予地址后,自动把 后一个字节开始的地方,作为SP的开始位置,所以初学者是不必要去理会的。这体现C的优越性,很多事情C编译时候做了。2)在51系列中data,idat…
来源: 日期:2013-12-18 14:00:48 人气:标签:
1)关于设置指针SP的问题。
编译器在把所有变量和缓冲区赋予地址后,自动把 后一个字节开始的地方,作为SP的开始位置,所以初学者是不必要去理会的。这体现C的优越性,很多事情C编译时候做了。
2)在51系列中data,idata,xdata,pdata的区别data:固定指前面0x00-Ox7f的128个RAM,可以用aCC直接读写的,速度 快,生成的代码也 小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:moxA,@Rx.xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movxACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。
3)startUp.a51的作用和汇编一样,在C中定义的那些变量和数组的初始化就在star。tup.a51中进行,如果你在定义全局变量时带有数值,如LJnsignedchardataXXX=100;,那startup.a51中就会有相关的赋值。如果没有=100,startup.a51就会把他清O。(startup.a51==变量的初始化)。
这些初始化完毕后,还会设置SP指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。
【看看这篇文章在百度的收录情况】
相关文章
- 上一篇: C语言与汇编语言程序的混合编程
- 下一篇: 什么是空载功耗?