如何定义一个宏来添加数组的所有元素而不使用循环?
#include <stdio.h>
int main()
{
int list[4] = {4, 8, 32, 42};
int total;
total = list[0] + list[1] + list[2] + list[3];
printf("%d\n", total);
return 0;
}
您可以定义一个与此total = list[0] + list[1] + list[2] + list[3];
类似的宏吗?
答案 0 :(得分:0)
只有可能的宏才能在不使用任何循环的情况下添加数组元素:
#include <stdio.h>
#define add(arr)\
arr[1] + arr[2]+ arr[3] + arr[4];
int main(void)
{
int list[4] = {4, 8, 32, 42};
int total = add(list);
printf("%d\n", total);
}
答案 1 :(得分:-2)
预处理宏不会为您进行任何迭代。你可以编写一个python脚本或一个bash脚本来产生你想要的效果。
在python中:
s="total = list[0]"
for n in range(1,4):
s+=" + list[%s]"%(n)
s+=";"
变量s将具有代码的总和。