关于宏的理解,
用宏函数举例
宏会把我们的内容编程一段代码,但是我们宏用的一切都不是变量,就是一个构建代码的符号。
比如下面的例子
char str1[] = "1234";
const char* str2 = "1234";
char st3[5] = { '1','2','3','4','\0' };
char st4[5] = { '1','2','3','4',0 };
const char* strs[4];
for (size_t i = 0; i < 4; i++)
{
宏函数(i);
}
我们希望宏把这个i编程1~4,这是不可能的,他可以生成一个带i的函数,但是对i的解析他是不管的。
所以我们用宏的时候一定要清楚,宏里面是不会有任何变量的,有的只是符号,他生成的程序运行的时候才有变量的概要,而宏本深是不解析任何变量的。他充其量把一个符号变成字符。但绝对没有变量。
就比如我想想中的宏函数是这样的
宏函数 (i) strs[i]= str##i
我期望的目的是生成这样的代码 strs[1]= str1
但实际是strs[i]= stri
所以这里我们一定要清楚,宏只是编译,他只是处理符号,完全没有变量的概念,变量只有到运行的阶段才有。
标签:const,函数,符号,strs,char,理解,关于,变量 From: https://blog.csdn.net/xie__jin__cheng/article/details/139266716