H5W3
当前位置:H5W3 > 其他技术问题 > 正文

什么是 char FAR* ?

image.png

什么是 char FAR*char FAR* FAR*?

回答:

不出意外是这玩意儿…

  1. What does “const char far* inStrSource” mean?
  2. 维基百科 – Far pointer

回答:

远指针是包含“段选择子”的指针。
举例来说,在x86_32的保护模式中,内存在硬件层面必须分段;由“段选择子”(16位)加上段内偏移(32位)构成,称为全指针(48位)。用long jmp来跳转到远指针时,cpu切换到段选择子在gdt中指示的内存段来执行代码,同时刷新段选择器cs。故远指针通常被操作系统用于切换代码段(的权限),比如上下文切换。

如果是应用层程序,现代系统基本都会将用户进程的虚拟空间视作一个完整的段,故far pointer几乎无作用。您可以直接无视“far”标签。

本文地址:H5W3 » 什么是 char FAR* ?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址