如何保持函数返回指向结构的指针

时间:2014-05-06 13:10:53

标签: c pointers struct

以下是样本结构

struct tipc_port {
        void *usr_handle;
        spinlock_t *lock;

};

下面是函数调用,它返回指向上述结构的指针

struct tipc_port *tipc_get_port(const u32 ref);

现在我想将这个指针存储在某个变量中的struct中,这个变量将被传递给其他函数。

如何声明这个变量,该变量将保存上述函数返回的struct指针。

提前致谢:)

2 个答案:

答案 0 :(得分:1)

在C语言中,您将变量声明为:

type varname;

struct struct_name varname;

所以在你的情况下你需要:

struct tipc_port * variable;

答案 1 :(得分:0)

这样做的一种方法是声明自己的类型:

typedef struct{
  void *usr_handle;
  spinlock_t *lock;
}tipc_port_t;

然后使用它,因为您可以使用任何其他常见类型:

tipc_port_t* tipc_get_port(const u32 ref);

关于你的代码:

tipc_port_t *yourStructPointer;
u32 yourRef;

yourStructPointer = tipc_get_port(yourRef);
[...]

或者:

tipc_port_t yourStructPointer;
u32 yourRef;

&yourStructPointer = tipc_get_port(yourRef);
[...]