void far * Video;
时间: 2023-07-23 11:51:28 浏览: 142
这行代码定义了一个指向 far 类型数据的 void 指针 Video。在这里,far 是一个关键字,它用于表示指针 Video 所指向的内存地址是一个远指针,也就是包含段地址和偏移地址两部分的指针。
在这段代码中,Video 指针被用来指向屏幕缓冲区的起始地址,即屏幕显示的内容最终会被写入到这个地址所表示的内存区域中。由于屏幕缓冲区的大小是 64000 字节,因此指针 Video 所指向的内存地址是一个 far 类型的指针。在实际使用中,可以通过 Video 指针来修改屏幕显示的内容。
相关问题
void far * Video; far关键字
在 C 语言中,far 是一个关键字,它通常与指针一起使用,用于表示指针所指向的内存地址是一个远指针,也就是包含段地址和偏移地址两部分的指针。在 16 位架构的计算机中,由于地址总线只有 16 位,因此需要使用段地址和偏移地址来访问大于 64KB 的内存空间。
在这段代码中,void far * Video 定义了一个指向 far 类型数据的 void 指针 Video。由于屏幕缓冲区的大小是 64000 字节,因此指针 Video 所指向的内存地址是一个 far 类型的指针。这个指针可以用来修改屏幕显示的内容,因为屏幕缓冲区的地址就是指针 Video 所指向的地址。
需要注意的是,far 关键字在现代的 32 位和 64 位架构中已经不再使用,因为这些架构的地址总线可以访问更大的内存空间。
这段代码出现以下错误[Error] expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
这个错误通常出现在变量或函数声明中,意味着在该行代码中缺少了一个等号、逗号、分号、asm 关键字或 __attribute__ 关键字。在这种情况下,可能是由于变量或函数声明中缺少了类型名或参数名导致的。
在这段代码中,可能是在变量 Video 的声明中出现了这个错误。如果是这样的话,可能是由于缺少了类型名,应该将 void 前面的 * 替换为具体的类型名,例如 unsigned char、unsigned int 等。修改后的代码可能如下所示:
```c
unsigned char far * Video;
```
如果这种方法不起作用,那可能是由于其他地方出现了错误,您需要检查代码中的其他语法错误。
阅读全文