我从未在我读过的任何书籍中看过这个##模式。那么这是什么意思?我无法理解涉及##:
的这些代码#define DECLARE_STRUCT_MRC_CLASS(sfx, obj_type) \
struct mrc_class ## sfx { \
const char *name; \
list_t subclasses; \
list_t instances; \
size_t size; \
bool initialized; \
void (*create)(obj_type *); \
void (*destroy)(obj_type *); \
}
和
DECLARE_STRUCT_MRC_CLASS(, struct mrc_obj);
#define MRC_CLASS_DECLARE(pfx, obj_type) \
obj_type; \
DECLARE_STRUCT_MRC_CLASS(_ ## pfx, obj_type); \
\
extern struct mrc_class_ ##pfx mrc_class_ ## pfx; \
static inline obj_type * \
pfx ## _create(MPI_Comm comm) \
{ \
return (obj_type *) \
__mrc_obj_create(comm, (struct mrc_class *) &mrc_class_ ## pfx); \
} \
任何澄清表示赞赏。提前谢谢!
答案 0 :(得分:4)
pri ## ntf("Hello, world!\n");
一旦你将通常的样板文件添加到上面,它就应该编译并完成预期的事情。
答案 1 :(得分:0)
它用于连接令牌。她的详细解释如下:http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html