帮我看一下,下面程序的 错误出在哪里?谢谢!
//Theprogramtotestthescreenpointer'susing//filescreen.cpp#include<string.h>#include<s...
//The program to test the screen pointer's using
//file screen.cpp
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define SCREEN( *SCREENPOINTER)
#define ROW 25
#define COLUMN 80
typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEXT;
typedef TEST SCREENARRAY[ROW][COLUMN];
SCREENARRAY far *SCREENPOINTER=(SCREENARRAY far *)0xb80000001;
char HELLO[]="HELLO CHINA!";
int main(void)
{
int CIRCLE; //定义循环变量
clrscr(); //清屏
for(CIRCLE=0;CIRCLE<strlen(HELLO);CIRCLE++) //第一次显示字符
{
SCREEN[10][CIRCLE].CHAR=HELLO[CIRCLE];
}
getch(); //观察结果(变色前)
for(CIRCLE=0;CIRCLE<strlen(HELLO);CIRCLE++) //变换颜色属性
{
SCREEN[10][CIRCLE].ATTRIBUTE=11;
}
getch(); //再次观察结果并正常返回
return 0;
} 展开
//file screen.cpp
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define SCREEN( *SCREENPOINTER)
#define ROW 25
#define COLUMN 80
typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEXT;
typedef TEST SCREENARRAY[ROW][COLUMN];
SCREENARRAY far *SCREENPOINTER=(SCREENARRAY far *)0xb80000001;
char HELLO[]="HELLO CHINA!";
int main(void)
{
int CIRCLE; //定义循环变量
clrscr(); //清屏
for(CIRCLE=0;CIRCLE<strlen(HELLO);CIRCLE++) //第一次显示字符
{
SCREEN[10][CIRCLE].CHAR=HELLO[CIRCLE];
}
getch(); //观察结果(变色前)
for(CIRCLE=0;CIRCLE<strlen(HELLO);CIRCLE++) //变换颜色属性
{
SCREEN[10][CIRCLE].ATTRIBUTE=11;
}
getch(); //再次观察结果并正常返回
return 0;
} 展开
1个回答
展开全部
如果你用的是vc6的话 #define SCREEN 会把所有含的“SCREEN”的字段全部替换的
例如在“
ypedef TEST SCREENARRAY[ROW][COLUMN];
”
里面的也会被替换,造成不必要的错误。
这一点绝对是硬伤
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
别的我倒没仔细看,应该错误就是这个吧
例如在“
ypedef TEST SCREENARRAY[ROW][COLUMN];
”
里面的也会被替换,造成不必要的错误。
这一点绝对是硬伤
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
别的我倒没仔细看,应该错误就是这个吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询