有这么一段编写副菜单的程序,没太看懂,哪位高人指点一下?
谢谢啦!
void WrtSbMenu(void)
{ int i;
/*to save area text picture to Buf, on which the sub menu is to be printed */
gettext(SbX[Mm]-2, 2, SbX[Mm]+SbWid[Mm]+1, SbNum[Mm]+4, Buf);
/* creat the sub menu window and print its edge line and sub menu item */
Wind(SbX[Mm]-2, 2, SbX[Mm]+SbWid[Mm], SbNum[Mm]+3, 1, 1, 3, 15, 1);
textattr(0x3f);
for(i = 0; i < SbNum[Mm]; i ++)
{ gotoxy(2, 1+i);
cputs(Sub[Mm][i]);
}
/* to highlight(加亮,突出) some one sub menu item */
textattr(0x1e);
gotoxy(2, Smm[Mm]+1);
cputs(Sub[Mm][Smm[Mm]]);
}
buf的意思是缓冲区, 它本质上就是一段存储数据的内存。
1、在C语言编程中一般用数组来表示一个缓冲区。
如下:
char buf[256] = {0}; //定义一个数组作为缓冲区。
2、C语言编译器生成程序后,每个程序自身的运行也需要缓冲区,一般叫做堆栈,它们的默认大小一般是1MB。
3、如果数据超出了缓冲区的大小,即为溢出,在C语言中如果用户定义的数组在栈区,当发生溢出时,称做栈溢出。
4、如果用户定义的数组在堆区,当发生溢出时,称为堆溢出,溢出不仅可能导致程序崩溃,而且可能会给程序带来安全性问题。
扩展资料
1、在不同速度的设备之间传递数据需要使用缓冲区。
2、C语言中的函数和高中数学的函数是不同的。数学中的函数是一个具体的解析表达式。
3、在键盘上输入的内容首先进入输入缓冲区,程序从输入缓冲区里获得数字,先进入输入缓冲区的数字必须首先被处理。