一种c语言中的特殊用法:
typedef struct tagIBC_RPC_MESSAGE_CB
{
ulong_t ulSequence; /* 消息的序号 */
ulong_t ulSendType; /* 同步取 or 异步取 */
#define IBC_RPC_SEND_TYPE_SYNC 0
#define IBC_RPC_SEND_TYPE_ASYNC 1
ulong_t ulMillSec; /* 定时器的尺度 */
long lRunOut; /* 余下的超时时间 */
IBC_RPC_MESSAGE_HEAD_S *pMsg; /* 消息指针 */
ulong_t ulDstNode; /* 目的节点(槽) 2k/11/08 */
IBC_RPC_SENDFINISH_NOTIFY pfSendFinish;
/* 异步取发送结束通知函数 */
ulong_t ulSendLen; /* 请求消息的长度,异步取 */
ulong_t ulSavedData; /* 用户暂时保存的数据(发送时的),异步取*/
ulong_t ulSemphoreID; /* 信号量 */
IBC_RPC_MESSAGE_HEAD_S *pReceiveMsg;
/* 接收到的消息,同步取 */
ulong_t ulReceiveDataLen; /* 接收的数据的长度,同步取 */
struct tagIBC_RPC_MESSAGE_CB *pstNext; /* 下一个消息 */
struct tagIBC_RPC_MESSAGE_CB *pstPrev; /* 上一个消息 */
}IBC_RPC_MESSAGE_CB_S;
在上面的数据结构中,定义了两个宏,变量ulSendType的取值是两个宏中的一个。此类用法是为了让代码更容易看更容易理解。