gpt4 book ai didi

c - 结构声明与定义

转载 作者:太空狗 更新时间:2023-10-29 16:10:53 27 4
gpt4 key购买 nike

如何声明,而不是定义一个结构,例如多个文件之间共享的数据。我在定义原语时理解这个想法。因此,例如,我可能有:

extern int myvalue;  /* in shared header file */

int myvalue = 5;   /* in data.c file */

但是,我如何对结构做同样的事情。例如,如果我有以下类型:

   typedef struct {
size_t size;
char * strings[];
} STRLIST;

如果我然后使用语句:

STRLIST list;

这既是声明又是定义。那么,如何应用使用 extern 的相同原则?

最佳答案

要声明结构的实例(或指向结构的指针):

extern STRLIST* ptrList;
extern STRLIST list;

定义它:

STRLIST* ptrList;
STRLIST list;

声明一个结构类型:

typedef struct STRLIST;

定义它:

typedef struct {
size_t size;
char * strings[];
} STRLIST;

请注意,您可以仅通过声明使用指向结构的指针,但您必须有一个定义才能直接使用该结构。

关于c - 结构声明与定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38194057/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com