yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1621回复:7

请教: 一个头文件里的问题

楼主#
更多 发布于:2004-07-19 10:12
1。在一个头文件里,这样定已一个枚举类型可以吗?

enum { XGPEMAC_NO_DMA, XGPEMAC_SIMPLE_DMA, XGPEMAC_SGDMA};/*定义了一个枚举类型,但没有枚举类型的名*/

2。 #define EXIT_CRITICAL(InstancePtr, flags) \
 spin_unlock_irqrestore((spinlock_t *)(InstancePtr->lock_p), flags)


在一个头文件里,看不懂这个于定义的含义,\ 的作用是什么

请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-19 13:02
1.可以的呀枚举就这样子用
2.没什么特别的,就是函数调用,使用宏来定义
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-19 13:31
按照我的理解

enum 枚举名 { XGPEMAC_NO_DMA, XGPEMAC_SIMPLE_DMA, XGPEMAC_SGDMA};

它这样用,没写枚举名

第2问题在详细一些,或者告诉我查c的那部分
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-07-19 15:56
第一个用法其实就相当于:

#define XGPEMAC_NO_DMA          xxx
#define XGPEMAC_SIMPLE_DMA      yyy
...

第二个用法。如果你多写一个斜杠的话,就是一种宏定义。看看C语言关于宏定义的说明吧。

[编辑 -  7/19/04 by  RED_spring]

[编辑 -  7/19/04 by  RED_spring]
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-19 16:18
第一个用法其实就相当于:

#define XGPEMAC_NO_DMA          xxx
#define XGPEMAC_SIMPLE_DMA      yyy
...

第二个用法。如果你多写一个斜杠的话,就是一种宏定义。看看C语言关于宏定义的说明吧。

[编辑 -  7/19/04 by  RED_spring]

[编辑 -  7/19/04 by  RED_spring]


第2用法实际是
 #define ENTER_CRITICAL(InstancePtr, flags) \
  spin_lock_irqsave((spinlock_t *)(InstancePtr->lock_p), flags)


请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lqhnet
驱动牛犊
驱动牛犊
  • 注册日期2004-07-22
  • 最后登录2004-07-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-22 08:42
从函数名称看,好像跟锁定相关的函数,不太懂啊.
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
6楼#
发布于:2004-07-22 09:04
Linux里头的东西吧!
1:可以这样定义
2:将InstancePtr的成员lock_p强制为spinlock_t *,再作为spin_unlock_irqrestore的参数,第二参数为flags;
调用EXIT_CRITICAL宏实现函数spin_unlock_irqrestore的功能!
pureqi
驱动牛犊
驱动牛犊
  • 注册日期2004-06-27
  • 最后登录2004-09-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-02 18:09
看一下MFC里的MESSAGE_MAP的宏展开,或者MFC的消息分发机制,很多这样子的,很简单的。
游客

返回顶部