导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C语言高手,请你出马![yangxiuhong25248]

 *第9505篇: C语言高手,请你出马!

  
楼 主:yangxiuhong25248 2003年3月28日22:26
 C语言高手,请你出马!
有一个类型定义:
typedef     unsigned long            uword;
再一个宏定义:
#define     put_wvalue(n,c)       (*((volatile uword *)(n)) = (c)) 
我不知道这个宏到底完成什么功能?


  
2楼:Kuang-chingTsui 2003年3月29日09:50
 参考:
typedef     unsigned long            uword;
定义uword这个名字是unsigned long 的代名,在这语句后面凡是需要定义unsigned long 型变量时均可以uword取代之。
#define     put_wvalue(n,c)       (*((volatile uword *)(n)) = (c)) 
定义一个宏,名为 put_wvalue(n,c)  宏的内容是(*((volatile uword *)(n)) = (c)) 
程序中出现 put_wvalue(n,c)子句时,编译器自动以(*((volatile uword *)(n)) = (c)) 代替之。
不知这样说明白否?
  
3楼:yangxiuhong25248 2003年3月29日11:02
 它的功能?
定义一个宏,名为 put_wvalue(n,c)  宏的内容是(*((volatile uword *)(n)) = (c)) 
((volatile uword  *)(n)把n变成是一个指向volatile uword 的指针,假设为N
上面变成(*(N)=(c)),
也就是c的值赋给N指向的存储单元。
假设我用到 put_wvalue(0x78000000,0x0FE) 
 那就是(*((volatile uword *)(0x78000000) = (0x0FE)) 
那就是0FE赋给0x78000000单元?
  
4楼:tm1300 2003年3月29日11:15
 参考
#define     put_wvalue(n,c)       (*((volatile uword *)(n)) = (c)) 
是定义了指针函数
  
5楼:tm1300 2003年3月29日11:19
 不好意思,没讲完就给误发表了
  
6楼:yangxiuhong25248 2003年3月29日11:30
 我明白了,还是很感谢各位!
  
7楼:tm1300 2003年3月29日11:30
 参考
put_wvalue(n,c) 为宏,宏的内容是(*((volatile uword *)(n)) = (c)) 
(volatile uword *)(n)是unsigned long型指针
*((volatile uword *)(n)是指针函数
(*((volatile uword *)(n)) = (c)) 表示指针函数执行的FUCTION

>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:[求助]请问在哪位知道手机程序的设计方案或者代码

[下一篇主题]:[讨论][求助]关于一卡通系统!