borland c中出现declaration syntax error怎么办??
冰青轮 2015-10-17 12:55:04 #include <stdio.h>
#include <conio.h>
#include <bios.h>
#include <math.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define ENTER 0x1c0d
#define DEL 21248
#define BACK 3592
#define CL 29440
#define CR 29696
#define Cc 11779
#define Cv 12054
#define Cx 11544
#define F1 15104
#define F2 15360
#define F3 15616
#define F10 17408
#include <dianh.h>
void view(Hnode *q)
void saveas(Hnode *head)←←就是这里出现的declaration syntax error
void save(Hnode *head)
void qview(Hnode *q)
void opens(Hnode *Hp)
void insert(Hnode *Hhead,int m,int n, char a)
void control(int A, Hnode *Hhead)
void colorview(Hnode *Hhead,int x,int y)
int test(Hnode *Hhead,int n)
int menuctrl(Hnode *Hhead,int A)
int judge(Hnode *Hhead,int m)
int del(Hnode *Hhead,int m,int n)
int check(Hnode *Hhead,int m,int n)
void main()
{
char a;
int i,A,x,y,flag=0,b;
Hnode *Hhead,*q;
node *p1,*p2;
Hhead=(Hnode *)malloc(sizeof(Hnode)); /*为行单链表中首节点分配内存空间*/
q=Hhead; Hhead->nextl=NULL;
p1=p2=q->next=(node *)malloc(sizeof(node)); /*为列单链表中首节点分配内存空间*/
p1->ch=13; p1->next=NULL;
drawmain(); /*显示主窗口*/
window(2,2,79,23);
textbackground(9);
for(i=0;i<24;i++)
insline();
window(3,3,78,23);
textcolor(10);
while(1)
{
while(bioskey(1)==0) continue; /*等待用户按键*/
a=A=bioskey(0); /*返回输入的字符的键值*/
if(a>=32&&a<127) /*若输入为常规字符或回车键*/
{
if(check(Hhead,wherey(),wherex())<=0)/*当前位置没有字符且输入是常规字符,则执行添加字符操作*/
{
NUM++;
p2->ch=a;
putch(a);
if(NUM==76) /*连续输入满行,分别生成一个新的行单链表和列单链表节点*/
{
p2->next=NULL;
q->nextl=(Hnode *)malloc(sizeof(Hnode));
q=q->nextl; q->nextl=NULL; q->next=NULL;
p1=p2=q->next=(node *)malloc(sizeof(node));
p1->ch=13; p1->next=NULL;
NUM=0;
}
else /*连续输入未满一行,生成一个新的列单链表节点*/
{
p2->next=(node *)malloc(sizeof(node));
p2=p2->next;
p2->ch=13;
p2->next=NULL;
}
}
else /*当前位置有字符且输入是常规字符,则执行插入字符操作*/
{
x=wherex(); y=wherey();
insert(Hhead,wherey(),wherex(),a);
NUM++;
view(Hhead);
gotoxy(x,y);
}
}
/*若输入为回车键*/
if(a==13)
{
gotoxy(1,wherey()+1);
q->nextl=(Hnode *)malloc(sizeof(Hnode));
q=q->nextl; q->nextl=NULL; q->next=NULL;
p1=p2=q->next=(node *)malloc(sizeof(node));
p1->ch=13; p1->next=NULL;
NUM=0;
}
x=wherex(); y=wherey();
/*文本窗口中左移,当前光标不在窗口的第1列*/
if((A==LEFT)&&(x!=1)) gotoxy(wherex()-1,wherey());
/*文本窗口中左移,当前光标在窗口的第1列*/
if((A==LEFT)&&(x==1)) gotoxy(abs(judge(Hhead,wherey()-1)),wherey()-1);
/*文本窗口中右移,若当前光标的右边一位有字符*/
if((A==RIGHT)&&check(Hhead,wherey(),wherex())>0) gotoxy(wherex()+1,wherey());
/*文本窗口中右移至下行的第1列,若当前光标位置没有字符且下行的第1列有字符*/
if((A==RIGHT)&&check(Hhead,wherey()+1,1)!=0&&check(Hhead,y,x)<=0) gotoxy(1,wherey()+1);
/*右移*/
if((A==RIGHT)&&x==76) gotoxy(1,wherey()+1);
/*上移*/
if((A==UP)&&check(Hhead,wherey()-1,wherex())!=0) gotoxy(wherex(),wherey()-1);
/*上移*/
if((A==UP)&&check(Hhead,wherey()-1,wherex())<=0)
{
if(judge(Hhead,wherey()-1)==0)
gotoxy(-judge(Hhead,wherey()-1)+1,wherey()-1);
else
gotoxy(-judge(Hhead,wherey()-1),wherey()-1);
}
/*下移*/
if((A==DOWN)&&check(Hhead,wherey()+1,wherex())!=0)
gotoxy(wherex(),wherey()+1);
/*处理BackSpace键*/
if(A==BACK) /*处理BackSpace键*/
{
flag=del(Hhead,wherey(),wherex()-1);
x=wherex()-1; y=wherey();
view(Hhead);
if(flag==0)
{
if(x!=0) gotoxy(x,y);
else gotoxy(x+1,y);
}
if(flag==1)
{
gotoxy(x+1,y);
flag=0;
}
}
/*处理菜单按键F1 F2 F3*/
if((A==F1)||(A==F2)||(A==F3)||(a<32||a>127))
{ A=menuctrl(Hhead,A);
if(A==100){main();} /*新建文件*/
if(A==101){ /*打开文件*/
Hhead=(Hnode *)malloc(sizeof(Hnode));
opens(Hhead);
getchar();clrscr();gotoxy(3,3);view(Hhead);
}
/*保存文件*/
if(A==102){save(Hhead);clrscr();cprintf("save successfully!");getch();gotoxy(3,3);view(Hhead);}
/*文件另存为*/
if(A==103){saveas(Hhead);clrscr();cprintf("save as successfully!");getch();gotoxy(3,3);view(Hhead);}
/*帮助*/
if(A==120){clrscr();cprintf("<Help> F1:File F2:Edit F3:Help ");
getch();gotoxy(3,3);view(Hhead);}
if(A==121){clrscr();cprintf("Abort:Version 2.0 Tel:XXXXXXXXXX");getch();gotoxy(3,3);view(Hhead);}
}
/*处理DEL键,删除当前位置的单个字符*/
if(A==DEL)
{
x=wherex(); y=wherey();
del(Hhead,wherey(),wherex());
view(Hhead);
gotoxy(x,y);
}
/*处理已经选定文本字符后,按DEL键的情况*/
if(A==DEL&&value!=0)
{
if(value>0)
x=wherex(), y=wherey();
else
x=r[0].col, y=r[0].line;
for(i=0;i<abs(value);i++)
{
if(value>0)
del(Hhead,r[i].line,r[i].col);
if(value<0)
del(Hhead,r[abs(value)-1-i].line,r[abs(value)-1-i].col);
}
value=0; /*此value为全局变量*/
view(Hhead);
gotoxy(x,y);
}
/*处理Ctrl+x按键*/
if(A==Cx&&value!=0)
{
if(value>0)
x=wherex(), y=wherey();
else
x=r[0].col, y=r[i].line;
for(i=0;i<abs(value);i++)
{
if(value>0)
del(Hhead,r[i].line,r[i].col);
if(value<0)
del(Hhead,r[abs(value)-1-i].line,r[abs(value)-1-i].col);
}
backup=value; /*保存r数组的有值元素的最大下标值*/
value=0; /*此value为全局变量*/
view(Hhead);
gotoxy(x,y);
}
/*处理Ctrl+c按键*/
if(A==Cc&&value!=0)
{
x=wherex(); y=wherey();
backup=value; value=0; /*此value为全局变量*/
view(Hhead);
gotoxy(x,y);
}
/*处理Ctrl+v按键*/
if(A==Cv&&backup!=0)
{
x=wherex(); y=wherey();
if(backup<0) /*Ctrl+右移键选定的文本,贴切此当前位置*/
for(i=0;i<abs(backup);i++)
insert(Hhead,y,x+i,r[i].ch);/*逐个插入*/
if(backup>0) /*Ctrl+左移键选定的文本,贴切此当前位置*/
for(i=0;i<backup;i++)
insert(Hhead,y,x+i,r[backup-1-i].ch);
view(Hhead);
gotoxy(x,y);
}
/*快速预览*/
if(A==F10)
{
qview(Hhead);
view(Hhead);
gotoxy(x,y);
}
/*处理Ctrl+左移键或右移键*/
if(A==CL||A==CR) control(A,Hhead);
/*显示当前行列号*/
x=wherex(); y=wherey();
window(1,1,80,25);
textcolor(0);
textbackground(7);
gotoxy(10,25); /*第25行,第10列,输出当前行号wherey()*/
cprintf("%-3d",y);
gotoxy(24,25); /*第25行,第24列*/
cprintf("%-3d",x);
window(3,3,78,23);
textcolor(10);
gotoxy(x,y);
textcolor(10);
textbackground(1);
}
}