Chủ đề: Con trỏ far (far pointer)
-
23-08-2014, 02:58 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Con trỏ far (far pointer)
Mình có một bài tâp về đồ hoạ có sử dụng con trỏ far như sau:
char attr = 11;
char far *vidmem = (char far *)(0xB8000000);
void border(void)
{
int i;
int f,g;
char line[] = "Line";
char col[] = "Col";
clrscr();
for(i=1; i<=23; i++)
{
write2vdu(179,attr,i,0);
write2vdu(179,attr,i,79);
}
for(i=1; i<=78; i++)
{
write2vdu(205,attr,0,i);
write2vdu(205,attr,24,i);
}
write2vdu(213,attr,0,0); /* four ends */
write2vdu(184,attr,0,79);
write2vdu(212,attr,24,0);
write2vdu(190,attr,24,79);
/* line */
for(i=1; i<=78; i++)
write2vdu(196,attr,3,i);
for(i=0; line[i]!=NULL; i++)
write2vdu(line[i],attr,2,i+4);
for(i=0;col[i]!=NULL; i++)
write2vdu(col[i],attr,2,i+16);
}
void write2vdu(char ch, char attr, int row, int col)
{
char far *v;
v = vidmem + row*160 + col*2 ;
*v = ch;
v++;
*v = attr;
}
char readvdu( int row, int col)
{
char far *v;
v = vidmem + row*160 + col*2 ;
return(*v);
}
Bạn nào biết có thể giải thích cho mình hiểu về con trỏ far dùng như thế nào?
Hàm write2vdu, hàm readvdu để làm gì?
Cái dòng này mình cũng không hiểu: v = vidmem + row*160 + col*2 ;
Cám ơn các bạn nhiều nha!View more random threads:
- Mảng và con trỏ
- Lỗi của bài tập về phân số
- Ý tưởng và giải thuật in sinh viên theo MSSV nằm trong file nhi phân?
- Code Tính Giai thừa trong C++ không chạy được???
- bài của langman
- nối các file trong lập trình C như thế nào?
- Lập mảng gồm 52 lá bài
- Giúp em debug thuật toán QuickSort
- Lỗi xuất mảng không đúng khi dùng con trỏ
- code game ko chạy đc là sao
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...