重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
宏属于预处理,在编译之前完成替换,因此你的描述应该是做不到的。
五台网站建设公司成都创新互联公司,五台网站设计制作,有大型网站制作公司丰富经验。已为五台上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的五台做网站的公司定做!
其实你如果要定义1000个宏,不如直接定义一次数组,然后在初值表赋值了,然后把该数组的内容再赋值给B。
int A[1000]={0x5,0xA,)x20,.......};
因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。
例如:
#define A 5
void main()
{
int num=A;
}
在编译之前A已经被替换成5了,所以就可以赋值给num。
一般用 函数的 参数传递。如果要通过函数返回值传递,可以用指针,另外保存数据的变量退出函数时不得消失。例如: #include int * fun(int n) { int i; static int a[100]; // 这里用static for (i=0;i
不能,宏只能用来做简单的替换,上面的MAX(x,y)中Max才是宏,x、y只是他的参数,max就是(xy?(x):(y))这条语句,x=5、y=6所以输出y;还有那个qqq的,因为之前已经定义了一个参数a,所以编译之后是a=2不是qqq=2,如果你将int a去掉试试