我这个蔡鸡初学者在尝试写一个推箱子的程序,但是今天编译的时候遇到了标题所显示的问题.了一下,是'p'这个指针被多次声明,但是我检查了很多遍(很有可能我太菜.......),应该不会有什么被多次声明什么的,但是它确实......,希望大家帮我康康(编译器用的是DEV c++)
附上代码
main,c
#include <stdio.h>
#include "maps.h"
#include "head.h"
int main() {
player.a=1;
player.b=8;
int x=0,y=0,level=114514,z=0;
change:scanf_s("%d",&level);
level--;
system("cls");
while(z==0){
mapoutput(x,y,level,map);
int mov;
scanf_s("%d",&mov);
move(mov,level,map,&player);
system("cls");
z=judgement(level,map);
if(z==1){
z=0;
goto change;
}
}
return 0;
}
move.c(太多了,省略一些,如果需要的话我在发出来,实在不行我发源文件)
#include <stdio.h>
#include "head.h"
#include "maps.h"
void move(int mov,int level,int map[2][6][10],struct post *p){
..............
}
judgement.c(同上)
#include <stdio.h>
#include "head.h"
#include "maps.h"
int judgement(int level,int map[2][6][10]){
...........
return z;
}
然后是两个头文件
map.h
#ifndef LIST_HEAD2
#define LIST_HEAD2
int map[2][6][10]={
........
};
#endif
head.h(感觉问题出在这里,但是....)
#ifndef LIST_HEAD1
#define LIST_HEAD1
struct post {
int x;
int y;
}player;
struct post *p=&player;
void mapoutput(int x,int y,int level,int map[2][6][10]);
void move(int mov,int level,int map[2][6][10],struct post *p);
int judgement(int level,int map[2][6][10]);
#endif
然后是运行的报错
希望大佬们能帮我看看问题出在哪里了
//救救孩子,秋梨膏