当前位置: 技术问答>linux和unix
关于define的一个问题
来源: 互联网 发布时间:2016-02-14
本文导语: 这是我在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_MODPAR...
这是我在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)
红色的一行是什么意思?
谢谢各位不吝赐教!!!
/* 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
"#"可将传递的宏字符串化
"##"将两个名字连接成一个(注意不是连接成字符串)
I2C_CLIENT_MODPARM_AUX1(a) = "1-ah"
参考
http://www.cppblog.com/jinglexy/archive/2007/04/19/22298.html