背景
在某些场合,定义一些变量,但是代码中并不需要使用这些变量的名字。
比如像uboot中的command,将这些command变量统一放在一个区域中,直接去查找就完了。
在这种情况下,使用宏定义,每次需要创建一个变量的时候,只需用宏定义来创建就行了,不需要指定变量名,很方便。
示例
#define __param_name(line) param_##line
#define _param_name(line) __param_name(line)
#define param_name() _param_name(__LINE__)
char param_name(); //使用宏创建变量
使用gcc -E来预编译,就会看到
char param_105; 后面的105就是行号。