电子无聊大神的个人空间 https://bbs.21ic.com/?976962 [收藏] [复制] [RSS]

日志

C51编程知识累积(不断更新)

热度 1已有 787 次阅读2014-6-19 20:12 |个人分类:C语言|系统分类:单片机| C语言, C51, 单片机, code

  • code的用法        
在单片机使用C语言进行编程的时候,经常使用到code。code是keil C51里面的关键字,一般用于定义常量数组,意思是告诉编译说把这个数组放在ROM存储。使用ROM(程序存储器)的好处是加快读取速度,不占用系统资源。
unsigned char code table[]; 表示分配一个指向code区的指针,指针本身在默认存储区。
code unsigned char table[]; 表示分配一个指向默认存储区的指针,指针本身在code区。
--------------------------------------------------------
  • volatile的用法      
        0)volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值,在哪里使用,在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步消除死代码。
        1)比如  对某值进行连续操作,en = 0; en = 1; en = 0; 本意是让单片机产生一个脉冲什么的,但是有些编译器会认为你        前面两句是废话,直接优化掉。此时应该对en变量用volatile修饰。
        2)其值在中断服务函数中修改的,供其它程序检测的变量,需要加volatile
        3)多任务环境下,各任务间共享的标志应该加volatle
        4)存储器映射的硬件寄存器通常也要加volatile说明
----------------------------------------------------------------------------------
  • static的用法   
        0)static声明变量或函数时,表明只能够在当前文件下调用。
        1)能够减少局部变量数据的建立和赋值的开销。
        2)降低模块间的耦合度
        3)


路过

鸡蛋

鲜花
1

握手

雷人

刚表态过的朋友 (1 人)

评论 (0 个评论)