大家帮我看看这句什么意思?
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include "graphics.h "
#define SCREEN (*SCREENPOINTER)
#define ROW 25
#define COLUMN 80
typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEST;
typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?
这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;
[解决办法]
typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEST;
typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?
--------------------------------------------------
TEST 是个结构体。
typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
-------------------------
这句定义一个新类型。SCREENARRAY。
SCREENARRAY是个二维数组。数组元素都是结构体TEST 类型的。
两个维度分别是ROW和COLUMN
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;
--------------------------------
定义一个指针变量。类型是SCREENARRAY *。
变量名是SCREENPOINTER。
并同时给变量赋初值。指向一个地址0xb8000000l。
同时为了解析,将这片地址强制转换为指针类型。也就是(SCREENARRAY *)
[解决办法]
这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;
==============
不行。
SCREENARRAY[ROW][COLUMN] *不是个类型。
[解决办法]
typedef TEST SCREENARRAY[ROW][COLUMN];
那么如果想访问SCREENARRAY中的某一元素能这么访问么?
SCREENARRAY[1][1].CHAR = 'a ';
[解决办法]
typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?
下面这句就是把地址0xb8000000l强制转换成了SCREENARRAY类型的一个指针,用SCREENARRAY的一个指针变量SCREENPOINTER来接收
这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l
不行的,因为SCREENARRAY[ROW][COLUMN]并不是类型