在BSD系统的头文件queue.h中,有如下宏
#define TAILQ_ENTRY(type, qual)\
struct {\
qual type *tqe_next; /* next element */\
qual type *qual *tqe_prev; /* address of previous next element */\
}
根据上面的定义,应该像这样使用它
struct foo {
TAILQ_ENTRY(struct foo, ) my_list;
//some data here
};
我的问题是:这里宏参数“qual”的目的是什么,它似乎在生成的代码中没有任何作用。
最佳答案
好吧,在您的用法中,也许它未被使用,但可以像这样进行一次调用
struct foo {
TAILQ_ENTRY(struct foo, ) my_list;
TAILQ_ENTRY(struct foo, const) my_list_too;
//some data here
};
其中 const
是类型限定符。
类型限定符可以是const
、restrict
、volatile
或_Atomic
。
关于c - 一个看似无用的宏参数的目的是什么(见下面的代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48578156/