关于define的一个问题
这是我在i2c.h文件中的摘录:
/* This is ugly. We need to evaluate I2C_CLIENT_MAX_OPTS before it is
stringified */
#define I2C_CLIENT_MODPARM_AUX1(x) "1-" #x "h"
#define I2C_CLIENT_MODPARM_AUX(x) I2C_CLIENT_MODPARM_AUX1(x)
#define I2C_CLIENT_MODPARM I2C_CLIENT_MODPARM_AUX(I2C_CLIENT_MAX_OPTS)
/* I2C_CLIENT_MODULE_PARM creates a module parameter, and puts it in the
module header */
#define I2C_CLIENT_MODULE_PARM(var,desc) \
static unsigned short var[I2C_CLIENT_MAX_OPTS] = I2C_CLIENT_DEFAULTS; \
MODULE_PARM(var,I2C_CLIENT_MODPARM); \
MODULE_PARM_DESC(var,desc)
红色的一行是什么意思?
谢谢各位不吝赐教!!!
[解决办法]
宏中间定义中的"#"说明:
"#"可将传递的宏字符串化
"##"将两个名字连接成一个(注意不是连接成字符串)
I2C_CLIENT_MODPARM_AUX1(a) = "1-ah"
参考
http://www.cppblog.com/jinglexy/archive/2007/04/19/22298.html