所以这是我的问题。
我有一个结构体,其中包含一些属性:
我希望可以直接发送我的结构体属性,而不必使用循环遍历结构体数组并复制元素。
我有一个结构体,其中包含一些属性:
struct foo {
const uint8_t propertyA;
int propertyB;
const int propertyC;
typeX propertyD;
typeY propertyE;
};
因为我必须表示对象foo的多个实例,所以我创建了这个结构体的数组:
const int foosQuantity = 8;
struct foo foos[foosQuantity] =
{{ .propertyA=0b11001100, .propertyB=0, .propertyC=140, ...},
{ .propertyA=0b11001000, .propertyB=0, .propertyC=150 ...},
//*** foosQuantity-3 MORE TIMES ***//
{ .propertyA=0b11001000, .propertyB=0, .propertyC=150 ...}}
到目前为止,一切似乎都正常工作。然而,我还没有想出如何将一个类型的属性数组发送到函数中。例如,我有一个在外部库中编写的函数,它需要一个属性A的数组:
void myFunc(const uint8_t *propertyAs, sizeArray){
//*** DO STUFF ***//
}
我希望可以直接发送我的结构体属性,而不必使用循环遍历结构体数组并复制元素。
int main(){
//*** STUFF ***//
myFunc(foos.propertyA, foosQuantity);
//*** MORE STUFF ***//
return 0;
}
这个可行吗?
const
成员意味着您不能有效地使用malloc()
动态分配您的结构体 - 您可以使用calloc()
,但值将为零且无法更改。这可能不是您想要的。 - Jonathan Leffler