使用泛型数组堆栈总报错揭示unexpected end of file found
使用泛型数组堆栈总报错提示unexpected end of file found
主程序g_stack.c如下
自己编写的头文件g_stack.h如下
主程序g_stack.c如下
#include "g_stack.h"
#include <STDIO.H>
#include <STDLIB.H>
GENERIC_STACK(int,_int,10)
GENERIC_STACK(float,_float,5)
int main()
{
push_int(5);
push_int(22);
push_int(15);
push_float(25.3);
push_float(-40.3);
while(!is_empty_int())
{
printf("popinf %d\n",top_int());
pop_int();
}
while(is_empty_float())
{
printf("poping %f\n",top_float());
pop_float();
}
return EXIT_SUCCESS;
}
自己编写的头文件g_stack.h如下
#include <ASSERT.H>
#define GENERIC_STACK(STACK_TYPE,SUFFIX,STACK_SIZE) \
static STACK_TYPE stack##SUFFIX[STACK_SIZE]; \
static int top_element##SUFFIX = -1; \
int is_empty##SUFFIX(void) \
{ \
return top_element##SUFFIX == -1; \
} \
int is_full##SUFFIC(value) \
{ \
return top_element##SUFFIX == STACK_SIZE-1; \
} \
void push##SUFFIX(STACK_TYPE value) \
{ \
assert(!is_full##SUFFIX()); \
top_element##SUFFIX += 1; \
stack##SUFFIX[top_element##SUFFIX] = value \
} \
void pop##SUFFIX(void) \
{ \
assert(!is_empty##SUFFIX()); \
top_element##SUFFIX -=1; \
} \
\
STACK_TYPE top##SUFFIX(void) \
{ \
assert(!is_empty##SUFFIX()); \
return stack##SUFFIX[top_element##SUFFIX]; \
} \