C语言中使用宏定义多次赋值的问题

C语言宏定义中,我define了1000个参数:(值没有任何规律)

#define A0 0x5
#define A1 0xA
#define A2 0x20
......
#define A998 0x45
#define A999 0x8B

我现在有个数组B[1000]需要去赋值,值就是define的A0-A999。我想用for循环这样去赋。
for(i=0;i<1000;i++)
{
B[i] = A??; // 我的问题:这里的宏定义应该怎么调?
}

宏属于预处理,在编译之前完成替换,因此你的描述应该是做不到的。

其实你如果要定义1000个宏,不如直接定义一次数组,然后在初值表赋值了,然后把该数组的内容再赋值给B。

int A[1000]={0x5,0xA,)x20,.......};追问

谢谢。这些宏定义实际是别人通过script产生,我无法控制。貌似我也只有用script来一个个赋值了。

追答

嗯!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-04
外循环完毕的时候ji的值已经变成上次循环结束时候的值了,
两个没有什么特别的区别.只是如果是const变量就必须在定义时候初始化.
第2个回答  2019-08-17
for(i=0;i<1000;i++)
{
B[i] = A&i; // 我的问题:这里的宏定义
}
相似回答