今天作者在复习C++时候,偶然想到在嵌入式开发中,有很多宏定义的妙用处。宏定义是编译前,编译器通过替换的方式将文件中的所有自己定义的相关内容替换为对应宏定义的内容,这样的宏定义更具有解读性。
那当定义很多命名很长且有连续编号的变量时,比如多个驱动的时候,是不是可以通过宏定义在开头进行配置和修改呢?每组变量之间获取只有某个编号不同,这样就可以采用带参数宏定义来进行。本着这样的猜想,有了以下的尝试:
#include <iostream>
#include <string>
/*尝试带参宏申请变量*/
#define INT_VALUE(x) (V_x)
using namespace std;
int main() {
int sum = 0;
for(int i = 1; i <= 5; i++) {
int INT_VALUE(i) = i;
cout << INT_VALUE(i) << endl;
sum += INT_VALUE(i);
}
cout << "sum = 1+2+3+4+5 = " << sum << endl;
return 0;
}
以上代码时通过带参数宏定义INT_VALUE(x)申请了5个变量,分别赋值为1,2,3,4,5并将它们的和保存在sum中,输出结果如下,也说明尝试成功。目前还不知道以后有没有常用这种,先验证了其可行性。