我定义了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]。
这里最好和最有效的程序是什么?
答案 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
的值}。