首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大家帮小弟我看看这句什么意思

2012-02-15 
大家帮我看看这句什么意思?#includestring.h#includestdio.h#includeconio.h#include dos.h#inclu

大家帮我看看这句什么意思?
#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]并不是类型

热点排行