找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3173|回复: 19
收起左侧

关于c语言的问题,有没有code有什么区别

  [复制链接]
ID:650754 发表于 2019-11-27 14:35 | 显示全部楼层 |阅读模式
uchar code str[]=" hello";
uchar  str[]=" hello";
有没有code有什么区别
回复

使用道具 举报

ID:631219 发表于 2019-11-27 21:49 | 显示全部楼层
如果有code则分配ROM空间存贮 ,但程序运行中不能改写这个数据了,适用于不变的数据,例如提示信息、字符代码等等,如果没有code则分配RAM空间存贮 ,程序运行时可以改变这个数据,例如计数次数等等,程序运行时不改变的数据尽量用code,因为RAM一般比较少,是宝贵的。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:638524 发表于 2019-11-27 15:23 | 显示全部楼层
我不太清楚,以前看书说是放在有个专门的区域里面不占用程序空间
回复

使用道具 举报

ID:303892 发表于 2019-11-27 15:36 | 显示全部楼层
code表示保存在程序存储器中ROM中,没有code表示保存在数据存储器中RAM中
回复

使用道具 举报

ID:275826 发表于 2019-11-27 16:30 | 显示全部楼层
ode的作用是告诉单片机,我定义的数据要存储在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(存储器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM(存储器)的意思。
程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。
回复

使用道具 举报

ID:411550 发表于 2019-11-27 16:42 | 显示全部楼层
占用内存的问题,如果没有code程序吧数据存储在RAM,有则存储在ROM中。
回复

使用道具 举报

ID:245004 发表于 2019-11-27 17:06 | 显示全部楼层
对于普通51单片机,内部分为“程序存储区”和“数据存储区”。
程序存储区ROM存储的是单片机程序代码、常量、数据表格等,不可修改;
数据存储区RAM存储的是单片机数据代码,变量等,可以修改。
定义有code的变量(数组)会定义到程序存储区;
定义无code的变量(数组)会定义到数据储区。
因为数据存储区空间有限,所以对于不需要改变的常量/数组/表格就定义到程序存储区。
一个常量不是很大的话,即可以定义到程序存储区,也可以定义到数据存储区;而一个变量只能定义到数据存储区。
回复

使用道具 举报

ID:25310 发表于 2019-11-27 17:51 | 显示全部楼层
code表示保存在程序存储器中ROM中,没有code表示保存在数据存储器中RAM中
楼上正解!
回复

使用道具 举报

ID:190832 发表于 2019-11-27 19:07 | 显示全部楼层
这个就相当于const,加上code修饰的保存在FLASH中,不占用RAM空间
回复

使用道具 举报

ID:235200 发表于 2019-11-27 19:41 | 显示全部楼层
使用code时,str数组所定义的字符与程序存放在一起,程序不能更改数组的值,通常不变的一些值用此方法定义,不使用code,默认字符数据存放在内存中,数组str的值可随时用程序修改,在内存充足的情况下一般没去关注它存在哪 里
回复

使用道具 举报

ID:650754 发表于 2019-11-27 19:57 | 显示全部楼层
xuxiaochunabcd 发表于 2019-11-27 15:36
code表示保存在程序存储器中ROM中,没有code表示保存在数据存储器中RAM中

可以在说的具体一点吗  小白不太明白
回复

使用道具 举报

ID:123289 发表于 2019-11-27 20:30 | 显示全部楼层
学C,不学单片机原理,所以你无法理解。
板凳正解。
回复

使用道具 举报

ID:524818 发表于 2019-11-28 10:40 | 显示全部楼层
ROM和RAM的区别,用了以后可以节约内存空间
回复

使用道具 举报

ID:597084 发表于 2019-11-28 11:47 | 显示全部楼层
没有code,程序默认将该数组保存在内存里,加上code,程序会将该数组保存在外部flash,节省了内存空间。
回复

使用道具 举报

ID:420836 发表于 2019-11-29 09:02 | 显示全部楼层
单片机内部存储器分为程序存储区 (ROM) 和数据存储区 (RAM)。没有code数据存储在RAM,有则存储在ROM中
回复

使用道具 举报

ID:668004 发表于 2020-7-10 10:05 | 显示全部楼层
tyrl800 发表于 2019-11-27 16:30
ode的作用是告诉单片机,我定义的数据要存储在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇 ...

讲得非常好   我看了两遍
回复

使用道具 举报

ID:783844 发表于 2020-7-10 10:37 | 显示全部楼层
code会给你分配ROM空间存贮
回复

使用道具 举报

ID:328305 发表于 2020-7-25 17:50 | 显示全部楼层
学习了,谢谢!也就是说为是省REM 每次都加上,对吧!
回复

使用道具 举报

ID:808700 发表于 2020-7-28 10:42 | 显示全部楼层
有code就是写死了的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表