我正在尝试编写代码来构建堆栈,但是我遇到了对我来说没有意义的编译错误。这是我的stack.h
:
struct StackNode {
void* previous;
int value;
};
struct Stack {
StackNode* top;
};
Stack* new_stack () {
StackNode stn = { NULL, 0 };
Stack* st = (Stack*) malloc(sizeof(Stack));
st->top = NULL;
return st;
}
我的main.c
:
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main () {
struct Stack* st = new_stack();
return 0;
}
gcc
抛出这些错误:
制作(在目录:/home/diego/temp/stack)gcc -g -O2 -std=c99 -c
main.c 在 main.c:4 中包含的文件中:编译失败。堆栈.h:10:
错误:“StackNode”之前的预期说明符限定符列表</p>
stack.h:14: 错误:预期 '='、','、';'、'asm' 或 '<strong>attribute'</p>
在'*'标记main.c之前:在函数'main'中:main.c:8:警告:
函数“new_stack”main.c:8 的隐式声明:警告:
初始化从整数生成指针,没有强制转换:*
[main.o] 错误 1
编辑:我发现了错误。我忘了把struct
前面Stack
和StackNode
一些行。总是struct
在这些线上解决问题。