void far * Video; far关键字
时间: 2023-08-06 16:07:59 浏览: 45
在 C 语言中,far 是一个关键字,它通常与指针一起使用,用于表示指针所指向的内存地址是一个远指针,也就是包含段地址和偏移地址两部分的指针。在 16 位架构的计算机中,由于地址总线只有 16 位,因此需要使用段地址和偏移地址来访问大于 64KB 的内存空间。
在这段代码中,void far * Video 定义了一个指向 far 类型数据的 void 指针 Video。由于屏幕缓冲区的大小是 64000 字节,因此指针 Video 所指向的内存地址是一个 far 类型的指针。这个指针可以用来修改屏幕显示的内容,因为屏幕缓冲区的地址就是指针 Video 所指向的地址。
需要注意的是,far 关键字在现代的 32 位和 64 位架构中已经不再使用,因为这些架构的地址总线可以访问更大的内存空间。
相关问题
void far * Video;
这行代码定义了一个指向 far 类型数据的 void 指针 Video。在这里,far 是一个关键字,它用于表示指针 Video 所指向的内存地址是一个远指针,也就是包含段地址和偏移地址两部分的指针。
在这段代码中,Video 指针被用来指向屏幕缓冲区的起始地址,即屏幕显示的内容最终会被写入到这个地址所表示的内存区域中。由于屏幕缓冲区的大小是 64000 字节,因此指针 Video 所指向的内存地址是一个 far 类型的指针。在实际使用中,可以通过 Video 指针来修改屏幕显示的内容。
FAR *PASCAL FAR
FAR *PASCAL FAR 是一种函数指针类型的声明,用于在Windows编程中。它表示一个指向远程(即在不同的代码段中)函数的指针。下面是一个示例:
```c
typedef void (FAR *PASCAL FARPROC)();
void FAR PASCAL FARFunc()
{
// 远程函数的实现
}
int main()
{
FARPROC pFunc = FARFunc;
// 使用函数指针调用远程函数
pFunc();
return 0;
}
```
在上面的示例中,FAR *PASCAL FARFunc 是一个远程函数的声明,它使用了 FAR *PASCAL FAR 类型的函数指针。在 main 函数中,我们将 FARFunc 赋值给 pFunc,通过 pFunc 调用远程函数。