这可能是一个简单的问题,但我从来没有碰到类似的东西。让我首先说我在GCC编译器中使用标准C,这是针对嵌入式系统的。正在通过函数传递的指针和结构
我有一个结构,包含一个平均数组,运行总和,零偏移量,比例因子,除数因子和指向平均数组的指针。基本上我宣称:
typedef struct tag_avgAry {
int array[AVG_ARRY_LEN];
int *start;
int *current;
int *end;
long sum;
int avg;
int factor;
int zero;
int value;
unsigned char scale;
} avgAry;
所以我的问题是这样的。我需要将一个用这个typedef和一个数据变量创建的结构传递给一个函数,该函数处理用新数据更新运行平均值和数组表。我已经有一个函数声明:
void processArray(int data, avgAry array)
现在我知道我需要改变阵列到*阵列让我真正修改结构,我传递,而不仅仅是一个副本,但怎么办然后我处理作为结构一部分的指针。也就是说,如果我的stucts的一个被称为PHA然后存储在结构数组的当前元素8号我会写:
*phA.current++ = 8;
然后将检查“当前”指针对着“开始”和“结束”的指针,如果需要重新设置......但是,如果我这样做,通过调用processArray功能如下...
processArray(8,(avgAry *)(&phA));
我如何引用指针的结构,因为我的理解是,访问,可以说,功能我会写phA的和元素:
*array.sum = data;
但是,如果我想访问指针电流,我会写这样的事情吗?
*(*array.current)++ = data;
对不起,它只是一个漫长的时间,因为我已经在使用指针和结构...已浪费太多时间做ASM我想深度得到这个。
这个......非常多这个!我在阅读OP的问题,并在完成之前变得生气,谢谢Jared让我的脑海中恢复了理智和冷静。 – speeder
好的。我想我明白这一点,但在我的情况下,我的传入成员只是简单地称为数组。它实际上不是一个数组,而是一个包含多个变量,指针和一个整数数组作为结构成员的结构。那么我是否仍然按照同样的方式去做[0]? – balmerjd
@ user3221422必须知道'array'的确切类型才能回答 – JaredPar