宏参数的目的是什么似乎没用(参见下面的代码)

时间:2018-02-02 07:55:54

标签: c macros bsd

在BSD系统的头文件queue.h中,有以下宏

if (selectedServices.Contains(Convert.Int32(freeServices.Split(','))
{
}

根据上面的定义,人们应该像

一样使用它
#define TAILQ_ENTRY(type, qual)\
struct {\
    qual type *tqe_next;        /* next element */\
    qual type *qual *tqe_prev;  /* address of previous next element */\
}

我的问题是:宏观论证的目的是什么" qual"在这里,似乎没有在代码生成中发挥任何作用。

1 个答案:

答案 0 :(得分:5)

好吧,在你的用法中,也许它未使用,但可以像

那样进行一次通话
struct foo {
TAILQ_ENTRY(struct foo, ) my_list;
TAILQ_ENTRY(struct foo, const) my_list_too;
//some data here
};

其中const是类型限定符。

类型限定符可以是constrestrictvolatile_Atomic