头文件cissvar.h有这样的定义:
#define CISSQ_REQUEST_QUEUE(name, index) \
static __inline void \
ciss_initq_ ## name (struct ciss_softc *sc) \
{ \
STAILQ_INIT(&sc->ciss_ ## name); \
CISSQ_INIT(sc, index); \
} \
(...)
ciss.c中的实际用法如下所示:
ciss_initq_free(sc);
ciss_initq_notify(sc);
如果有人可以解释这是如何工作的,那就太好了。
所以,
- 名称指的是“免费”或“通知”
- “索引”从何而来?
- 编译器如何在这里进行 .h 和 .c 之间的魔术绑定?