所以我在另一个头文件中有一个结构
struct MyStackStruct{
void **stk;
void *el;
int sizeStk;
int top;
int choice;
};
typedef struct MyStackStruct MyStack;
我称它为main。
如果我s->top = -1;
在另一个file.c上执行类似的操作,也可以通过以下方式将其打印出来就可以了printf("%d", s->top)
但是我找不到关于如何在main中打印相同内容的解决方案。我没有尝试过。帮助!
编辑1:使其清楚。在struct.h我有
struct MyStackStruct{
void **stk;
void *el;
int sizeStk;
int top;
int choice;
};
typedef struct MyStackStruct MyStack;
然后在main.c中MyStack* s;
,将其定义为,然后使用函数将其发送到另一个文件
MyStack *sP = &s;
然后像 push(sP);
如果在推或任何其他功能,我做类似的事情s->top = -1;
,printf("%d", s->top)
它打印出-1。如果我在main.c中执行相同的printf,则会打印出随机数。
您可以将struct定义放在头文件中struct.h
,并将其包含在main.c
中#include "struct.h"
。这样,编译器将在编译时获得该结构的详细信息main.c
。
MyStack* s;
定义s
为的指针MyStack
,&s
如果类型为的指针MyStack
,也就是MyStack**
。在这种情况下,您只需使用即可s
,例如push(s)
。
另外,您需要在使用指针之前对其进行初始化,可以使用malloc
:
s = malloc(sizeof(*s));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句