2014-11-25 51 views
0

用C发展,我有一个包含指向其他结构的一个结构,可以说:传递多个参数或只是一个ID?

struct A { 
    struct B *pB; 
    struct C *pC; 
    struct D *pD; 
    struct E *pE; 
}; 

现在,我有一个全球性的阵列保持N = 100名的项目,结构体:

struct A gl_array[100]; 

当处理上述数组中的一个项目时,我向某些函数发送特定项目所持有的指针。比方说,我要送这些参数的函数命名foo_func:

int foo_func(struct B *pB_, struct D *pD_) 

我的问题 - 是它更好地在功能发送项目的唯一标识数组中,并利用其自身的指针,或者向函数发送我想要使用的参数,如示例中所示?处理这种情况的正确方法是什么?也许这不是问题,我可以使用这两种方法?

+0

我依赖。当它们不在'A'结构数组中时,这些指针是否会被调用?如果那永远不会发生,那么这只是个人偏好或风格的问题。 – 2014-11-25 11:20:17

+0

该进程处理全局数组中的项目,并且这些函数将永远不会使用不是数组中项目的一部分的指针调用。 – 2014-11-25 11:23:34

回答

1
int foo_func(struct B *pB_, struct D *pD_) 

如果没有必要让foo_func()知道gl_array,则使函数更通用。

如果foo_func()是一个私有函数,我认为两者都可以。