打印

定义数组用const和用code有什么区别?

[复制链接]
12812|10
手机看帖
扫描二维码
随时随地手机跟帖
沙发
huangqi412| | 2008-7-9 16:12 | 只看该作者

code只keil特有吧..

使用特权

评论回复
板凳
ayb_ice| | 2008-7-9 16:44 | 只看该作者

CODE可以把变量定位在FLASH区

而标准的C CONST只是说明是常量,并没有指定存储区域,有些编译器则定位在FLASH区

使用特权

评论回复
地板
小学一年级|  楼主 | 2008-7-9 16:51 | 只看该作者

我看过别人用 const 定义在 E2PROM

使用特权

评论回复
5
小学一年级|  楼主 | 2008-7-9 16:52 | 只看该作者

用 AVR STUDIO

使用特权

评论回复
6
XHTXZXW| | 2008-7-9 18:37 | 只看该作者

嘿嘿

const x=1000;            //有价证券  存折=1000;
code  int y;             //保险柜    LZ刚脱下的穿了两周的  袜子;
void fun()
{
  ... 
  ...                      //处理存折和LZ袜子
}
Keil编译以上代码的时候,Keil很聪明,会自做主张,把const型的x放到代码区里(如果Keil不够聪明呢?x放哪儿就不好说了);而y已经由程序员指定了必须放在代码区里。
于是,x,y都放在代码区了!

结合注释,如果LZ的LP是Keil,她会怎么做呢?以下做个分析。
LZ的LP深知,存折很重要啊,所以她自做主张把它放到保险柜里(如果LZ的LP....,随手就把LZ辛苦挣钱的存折搁茶几上了);而LZ的那双加了修饰短语的袜子,已经由LZ指定了必须放在保险柜里。
于是,存折,LZ的加了修饰短语的袜子都放在保险柜里了!

这就是const 和code 使用上的区别。

使用特权

评论回复
7
sodwell| | 2008-7-9 20:06 | 只看该作者

re

和编译器有关!

使用特权

评论回复
8
huangqi412| | 2008-7-9 20:41 | 只看该作者

avr studio 中const是在ram中,要包含头文件才在flash

使用特权

评论回复
9
yewuyi| | 2008-7-10 10:16 | 只看该作者

void (code *taskadd)(void)

使用特权

评论回复
10
king0820| | 2015-6-12 12:52 | 只看该作者

请问要包含哪一个头文件才会放在flash?

使用特权

评论回复
11
幸福至上| | 2016-1-8 15:30 | 只看该作者

请问版主,这个函数指针用code修饰是什么意思呢?我测试这样编译,代码会少一些,但功能都正常啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

64

帖子

0

粉丝