1 #include<stdio.h>
2 #include<stdlib.h>
3 #define MAXSIZE 100
4 #define OK 1
5 #define ERROR 0
6 typedef int SElemType;
7 typedef int Status;
8 typedef struct
9 {
10 SElemType data[MAXSIZE];
11 int top;
12 }SqStack;
13 SqStack InitSqstack()
14 {
15 SqStack S;
16 S.top=-1;
17 return S;
18 }
19 Status Push(SqStack S,SElemType e)
20 {
21 if(S.top==MAXSIZE-1) { return ERROR; }
22 S.top++;
23 S.data[S.top]=e;
24
25 return OK;
26
27 }
28 Status Pop(SqStack S,SElemType *e)
29 {
30 if(S.top==-1) {return ERROR;}
31
32 *e=S.data[S.top];
33 S.top--;
34
35 return OK;
36 }
37 Status PrintSqStack(SqStack S)
38 {
39 int i;
40 for(i=0;i<=S.top;i++)
41 printf("%d",S.data[i]);
42
43 return OK;
44 }
45 void main()
46 {
47 SqStack s;
48 s=InitSqStack();
49 int *x;
50 InitSqStack(s);
51 Push(s,1);
52 Push(s,2);
53 Push(s,3);
54 Push(s,4);
55 PrintSqStack(s);
56 Pop(s,x);
57 PrintSqStack(s);
58 }
~
错误原因:moudle.c: 在函数‘main’中:
moudle.c:48:5: 错误: 将‘int’赋值给‘SqStack’时类型不兼容
还有一个问题问什么将.操作换为->操作,会提示->类型无效,因为有SqStack
还有当参数为 (SqStack &S)(SqStack *S)该怎么改,&的用法为什么会报错,编译器是gcc |