在for循环中将值添加到已定义大小的数组中

时间:2017-11-02 13:48:45

标签: c arrays

我定义了6个数组,每个数组可以包含10个值:

static s16 arr_A[10];
static s16 arr_B[10];
static s16 arr_C[10];
static s16 arr_D[10];
static s16 arr_E[10];
static s16 arr_F[10];

现在我有一个现有的函数,它给了我感兴趣的值:

FunctionContainsValuesOfInterest(&adc_values[0]);

myValues = adc_values[GROUP_A];
myValues = adc_values[GROUP_B];
myValues = adc_values[GROUP_C];
myValues = adc_values[GROUP_D];
myValues = adc_values[GROUP_E];
myValues = adc_values[GROUP_F];

每次调用FunctionContainsValuesOfInterest()时,我都会获得新的值。 现在我想创建一个循环,我填写例如     array arr_A [] wih adc_values [GROUP_A]的10个值,     arr_B [],包含10个adc_values值[GROUP_B]。

这里最好和最有效的程序是什么?

1 个答案:

答案 0 :(得分:1)

假设adc_values元素的类型与arr_X s的类型相同,即s16,您可以使用memcpy函数复制整个或部分adc_values

memcpy(arr_A, &adc_values[GROUP_A], sizeof(arr_A));

上面的假设是adc_values[GROUP_A]adc_values[GROUP_A+i]的{​​{1}}的10个连续项,在0到9之间(包括0和9),是需要复制到i的值}。