首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
飞思卡尔™半导体(Freescale Semiconductor)
» 关于一个指针语句的疑问
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
关于一个指针语句的疑问
发短消息
加为好友
asker_dfr
当前离线
UID
105211
帖子
163
精华
0
积分
516
阅读权限
50
在线时间
0 小时
注册时间
2005-3-8
最后登录
2010-7-7
高级会员
UID
105211
性别
男
1
#
asker_dfr
发表于 2005-3-11 15:44
|
只看该作者
在codewarrior中,使用的是C还是C++语言?我没看过C++,试问,二者区别大吗?
上面那个语句的指针部分,可不可以写成* (volatile unsigned char *(0x0001))这样的形式?
回复
引用
TOP
发短消息
加为好友
hlzhangxt
当前离线
UID
104462
帖子
98
精华
0
积分
375
阅读权限
30
在线时间
0 小时
注册时间
2005-3-1
最后登录
2006-2-3
中级会员
UID
104462
性别
男
2
#
hlzhangxt
发表于 2005-3-11 15:53
|
只看该作者
#define PORTB (*((volatile unsigned char*)(0x0001)))
#define PORTB (*((volatile unsigned char*)(0x0001)))
(volatile unsigned char*)(0x0001) 转换 0x0001为一个无符号字符的的指针,即地址。
加个*就是取这个地址处的值,即这个无符号字符。
一般用于读取外部端口的输入。如串口。 而且是 volatile的,不能被优化,否则无法同步。
[em26][em26][em26]
一名专业的嵌入式软件开发工作者
回复
引用
TOP
发短消息
加为好友
asker_dfr
当前离线
UID
105211
帖子
163
精华
0
积分
516
阅读权限
50
在线时间
0 小时
注册时间
2005-3-8
最后登录
2010-7-7
高级会员
UID
105211
性别
男
3
#
asker_dfr
发表于 2005-3-11 16:13
|
只看该作者
哈哈,看来我还是基本概念不清楚啊,得再苦练基本功。谢谢hlzhangxt的解释
回复
引用
TOP
发短消息
加为好友
asker_dfr
当前离线
UID
105211
帖子
163
精华
0
积分
516
阅读权限
50
在线时间
0 小时
注册时间
2005-3-8
最后登录
2010-7-7
高级会员
UID
105211
性别
男
4
#
打印
字体大小:
t
T
asker_dfr
发表于 2005-3-11 16:19
|
只看该作者
关于一个指针语句的疑问
指针
,
语句
,
疑问
在看MC9S12DP256 Evaluation Board的一个例子时,在对端口定义时有这样的语句:
#define PORTB (*((volatile unsigned char*)(0x0001)))
看到0x0001这样的16进制,还能理会是地址之类的,但对于“(*((volatile unsigned char*)(0x0001))) ”这样的指针用法还是不明其旨,有哪位高人指点一二,不慎感激。
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
asker_dfr
当前离线
UID
105211
帖子
163
精华
0
积分
516
阅读权限
50
在线时间
0 小时
注册时间
2005-3-8
最后登录
2010-7-7
高级会员
UID
105211
性别
男
5
#
asker_dfr
发表于 2005-3-11 16:19
|
只看该作者
指针的基本概念
在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等, 在第二章中已有详细的介绍。为了正确地访问这些内存单元, 必须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时, 银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针, 其中存放的数据才是该单元的内容。在C语言中, 允许用一个变量来存放指针,这种变量称为指针变量。因此, 一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。图中,设有字符变量C,其内容为“K”(ASCII码为十进制数 75),C占用了011A号单元(地址用十六进数表示)。设有指针变量P,内容为011A, 这种情况我们称为P指向变量C,或说P是指向变量C的指针。 严格地说,一个指针是一个地址, 是一个常量。而一个指针变量却可以被赋予不同的指针值,是变。 但在常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址, 是常量,“指针变量”是指取值为地址的变量。 定义指针的目的是为了通过指针去访问内存单元。
写得很好,比较清晰,借宝地给我加深一下概念的印象
回复
引用
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议