| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:请问怎样使用C语言定义数据的存储空间?
只看楼主 加入收藏
boliyuan
Rank: 1
来 自:四川南充
等 级:新手上路
帖 子:59
专家分:2
注 册:2007-6-26
结帖率:100%
收藏
 问题点数:0 回复次数:9 
请问怎样使用C语言定义数据的存储空间?

请问怎样使用C语言定义数据的存储空间?
例如:225是存放在片内RAM 20H单元,请问怎样用C语言来说明?
----一个急需知道答案的新手

搜索更多相关主题的帖子: C语言 定义 空间 数据 
2007-09-14 20:11
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
在NT内核上不允许你这样做,这样很危险



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
2007-09-14 20:19
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
除非你使用单片机,要自己管理内存
那就直接
int* p;
p = (int*)0x20;
2007-09-14 20:20
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
如果该单元存放的是整形,可以这样:
#define P_Data (int *)0x20

硬件编程通常用无符号类型,用指针指向某个控制电路的特定寄存器,所以你打开某些头文件常可以看到硬件信息的定义如:
#define P_Data (unsigned int *)0x20
以后要读这个RAM中的寄存器可以这样:variable = *P_Data ;
写就是 *P_Data = variable

当然像雨中飞燕那样也可以,不过很少有人这样用


2007-09-14 20:32
boliyuan
Rank: 1
来 自:四川南充
等 级:新手上路
帖 子:59
专家分:2
注 册:2007-6-26
收藏
得分:0 
回复:(雨中飞燕)除非你使用单片机,要自己管理内存...

谢谢了哈!
这是我们老师要求这样做的,我们现在是在学习单片机但是老师总让我们用C程序来做而不用汇编啊!我也没有办法,而且这只是写写程序,只要不用在实际当中应该没有事吧!不过还是多谢你的提醒,我以后会注意的!


只要开心就好!
2007-09-14 20:45
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
呵呵,用C可比汇编简单,不用考虑太多问题,就是#define一个指针指指来指去的,很简单的。
C写的程序可移植性好,以后换别的芯片把定义芯片信息的头文件换换就行了,汇编的话指令不一样就得重写了。
2007-09-14 20:52
boliyuan
Rank: 1
来 自:四川南充
等 级:新手上路
帖 子:59
专家分:2
注 册:2007-6-26
收藏
得分:0 
回复:(百年不亮)如果该单元存放的是整形,可以这样...

那如果还要说明存放的数据的范围又该怎样表示呢?
假设里面的数据是从1<=x<=15


只要开心就好!
2007-09-14 20:59
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
不懂你的意思
2007-09-14 21:02
boliyuan
Rank: 1
来 自:四川南充
等 级:新手上路
帖 子:59
专家分:2
注 册:2007-6-26
收藏
得分:0 
回复:(百年不亮)不懂你的意思
就是说片内RAM 20H中存放了一个数据,这个数据的取值范围是(1,15),请问怎样表示这个取值范围?

只要开心就好!
2007-09-14 21:10
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
#define P_Data (int *)0x20

然后就可以 (1<*P_Data)&&(*P_Data>15)来判断,你是这个意思吗?
2007-09-14 22:28
快速回复:请问怎样使用C语言定义数据的存储空间?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017408 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved