阅读:1630回复:7
请教: 一个头文件里的问题
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) 在一个头文件里,看不懂这个于定义的含义,\ 的作用是什么 |
|
|
沙发#
发布于:2004-07-19 13:02
1.可以的呀枚举就这样子用
2.没什么特别的,就是函数调用,使用宏来定义 |
|
|
板凳#
发布于:2004-07-19 13:31
按照我的理解
enum 枚举名 { XGPEMAC_NO_DMA, XGPEMAC_SIMPLE_DMA, XGPEMAC_SGDMA}; 它这样用,没写枚举名 第2问题在详细一些,或者告诉我查c的那部分 |
|
|
地板#
发布于: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] |
|
地下室#
发布于:2004-07-19 16:18
第一个用法其实就相当于: 第2用法实际是 #define ENTER_CRITICAL(InstancePtr, flags) \ spin_lock_irqsave((spinlock_t *)(InstancePtr->lock_p), flags) |
|
|
5楼#
发布于:2004-07-22 08:42
从函数名称看,好像跟锁定相关的函数,不太懂啊.
|
|
6楼#
发布于:2004-07-22 09:04
Linux里头的东西吧!
1:可以这样定义 2:将InstancePtr的成员lock_p强制为spinlock_t *,再作为spin_unlock_irqrestore的参数,第二参数为flags; 调用EXIT_CRITICAL宏实现函数spin_unlock_irqrestore的功能! |
|
7楼#
发布于:2004-08-02 18:09
看一下MFC里的MESSAGE_MAP的宏展开,或者MFC的消息分发机制,很多这样子的,很简单的。
|
|