我已经在我的 .h 文件夹中实现了一个全局外部 int ' 外部 INT GLOBAL_RETURNVAL; '
我想知道如何以同样的方式声明一个全局外部结构(得到这个 int 和一个 char * 作为参数)
谢谢
extern int GLOBAL_RETURNVAL
尝试
extern struct S_GLOBAL { int GLOBAL_RETURNVAL char *PWD };
在此声明中
extern int GLOBAL_RETURNVAL;
声明了一个
int
类型的对象。一个对象可以有外部链接。
在这个(不正确的)声明中
extern struct S_GLOBAL { int GLOBAL_RETURNVAL char *PWD };
您正在尝试声明类型说明符
struct S_GLOBAL
。不允许使用存储类说明符(如extern
)声明类型说明符,除非使用存储类说明符typedef
.
如果你会写例如
struct S_GLOBAL { int GLOBAL_RETURNVAL; char *PWD; };
那么结构声明的数据成员
int GLOBAL,_RETURNVAL
和对象不一样
extern int GLOBAL_RETURNVAL;
您似乎想在标头中声明一个结构类型的对象,例如
extern struct S_GLOBAL S_GLOBAL;
并在某些模块中初始化其数据成员,例如
struct S_GLOBAL S_GLOBAL = { .GLOBAL_RETURNVAL = GLOBAL,_RETURNVAL, .PWD = NULL };
或者结构可以这样声明
struct S_GLOBAL { int *GLOBAL_RETURNVAL; char *PWD; };
结构类型的对象可以像这样初始化
struct S_GLOBAL S_GLOBAL = { .GLOBAL_RETURNVAL = &GLOBAL,_RETURNVAL, .PWD = NULL };