我想定义一个宏,当这样使用时:
ADD_TO_OPS("abc", 3)
ADD_TO_OPS("cdef", 2)
ADD_TO_OPS("xx", 4)
, 将产生如下内容:
#define OPS_NAMES "abc", "cdef", "xx"
#define OPS_VALUES 3, 2, 4
也就是说,我想做ADD_TO_OPS(NAME, VALUE)
下面的事情(下面的代码是行不通的,只是让你看看我想要做什么):
#ifdef OPS_NAMES
# define OPS_NAMES2 OPS_NAMES, NAME
# undef OPS_NAMES
#else
# define OPS_NAMES2 NAME
#endif
#define OPS_NAMES OPS_NAMES2
#undef OPS_NAMES2
#ifdef OPS_VALUES
# define OPS_VALUES2 OPS_VALUES, VALUE
# undef OPS_VALUES
#else
# define OPS_VALUES2 VALUE
#endif
#define OPS_VALUES OPS_VALUES2
#undef OPS_VALUES2