传递多个参数或只是一个ID?

时间:2014-11-25 11:15:20

标签: c pointers arguments global-variables

在C中开发,我有一个结构,包含指向其他结构的指针,比如说:

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_)

我的问题 - 最好只发送数组中项目的ID并在函数本身中使用它的指针,或者向函数发送我想要使用的参数,如示例中所示?处理此类案件的正确方法是什么?也许它根本不是问题,我可以使用这两种方法吗?

1 个答案:

答案 0 :(得分:1)

int foo_func(struct B *pB_, struct D *pD_)
如果不需要让foo_func()知道gl_array,

使函数更通用。

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