<分区>
头文件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 之间进行魔术绑定(bind)?