关于 .h .c 多文件程序的问题,搞得晕头转向,大家帮忙
我想建一个栈,顺便练习一下用多文件写一个程序代码如下,一共四个文件(V.h ,F.h ,F.c ,do.c)请高人指教,编译的时候总是出错:
/* V.h 文件 共享宏及类型 的定义 */
#ifndef V_H
#define V_H
#define TRUE 1
#define FALSE 0
#define LENTH 100
typedef struct {
int elem[LENTH];
int top;
} STACK;
#endif
/* F.h 函数的声明 */
#ifndef F_H
#define F_H
void init_stack(STACK *S);
int is_empty(STACK *S);
int is_full(STACK *S);
int push(STACK *S ,int x);
int pop(STACK *S ,int *x);
int get_top(STACK *S ,int *x) ;
#endif
/* F.c 函数的实现 */
#include <stdio.h>
#include "V.h"
#include "F.h"
void init_stack(STACK *S)
{
S->top = -1;
}
int is_empty(STACK *S)
{
if(S->top == -1)
{
return TRUE;
}
else
{
return FALSE;
}
}
int is_full(STACK *S)
{
if(S->top == LENTH - 1)
{
return TRUE;
}
else
{
return FALSE;
}
}
int push(STACK *S ,int x)
{
if(S->top == LENTH - 1)
{
return FALSE;
}
(S->top)++;
(S->elem[S->top]) = x;
return TRUE;
}
int pop(STACK *S ,int *x)
{
if(S->top == -1)
{
return FALSE;
}
else
{
*x = S->elem[S->top];
(S->top)--;
return TRUE;
}
}
int get_top(STACK *S ,int *x)
{
if(S->top == -1)
{
return FALSE;
}
else
{
*x = S->elem[S->top];
return TRUE;
}
}
/* do.c 这是一个简单的测试*/
#include <stdio.h>
#include "F.h"
#include "V.h"
int main()
{
STACK *S1;
int a = 7;
int *b;
init_stack(S1);
push(S1,a);
pop(S1,b);
printf("%d\n",*b);
return 0;
}
就这么多,不知道为什么老是出错