关于结构体的.h和.c
#ifndef _stack_H
#define _stack_H
typedef struct st *Stack;
typedef int ElementType;
struct st{
int Capacity;
int Top;
ElementType *Array;
};
int IsEmpty(Stack S);
Stack CreateStack(int MaxElements);
void MakeEmpty(Stack S);
void Push(ElementType X, Stack S);
void Pop(Stack S);
ElementType TopAndPop(Stack S);
#endif
把下面这段放在stack.c里会出问题 error: dereferencing pointer to incomplete type
struct st{
int Capacity;
int Top;
ElementType *Array;
};
放在stack.h里就解决了。
另外,在别的c文件里声明extern Stack S时,注意保证S定义时是个全局变量(在main函数外面)。