typedef WORD near *PWORD;

xiaojunjun1202 2011-09-02 02:50:40
神马意思?
...全文
489 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
v_table 2011-09-02
  • 打赏
  • 举报
回复
#define near
叶落寒山 2011-09-02
  • 打赏
  • 举报
回复 1
typedef WORD near *PWORD; //near类型指针


near指针和far指针?

在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。
near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。
far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指针是20位的长度。)即可得到far指针的1M字节的偏移量。所以far指针的寻址范围是1M字节,超过了一个段64K的容量。例如一个far指针的段地址为0x7000,偏移量为0x1244,则该指针指向地址0x71224.如果一个far指针的段地址是0x7122,偏移量为0x0004,则该指针也指向地址0x71224。
如果没有指定一个指针是near或far,那么默认是near。所以far指针要显式指定。far指针工作起来要慢一些,因为每次访问一个far指针时,都要将数据段或程序段的数据交换出来。另外,far指针的运算也比较反常,例如上面讲到的far指针指向同一个地址,但是比较的结果却不相同。


什么时候使用far指针?

当使用小代码或小数据存储模式时,不能编译一个有很多代码或数据的程序。因为在64K的一个段中,不能放下所有的代码与数据。为了解决这个问题,需要指定以far函数或far指针来使用这部分的空间(64K以外的空间)。许多库函数就是显式地指定为far函数的形式。far指针通常和farmalloc()这样的内存分配函数一起使用
xiaojunjun1202 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 selooloo 的回复:]
16位的指针吧,老早WINDOWS的产物,win32下就是32位的指针
[/Quote]

能具体解释下那条语句么?
selooloo 2011-09-02
  • 打赏
  • 举报
回复
16位的指针吧,老早WINDOWS的产物,win32下就是32位的指针

xiaojunjun1202 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mougaidong 的回复:]
引用 2 楼 xiaojunjun1202 的回复:

引用 1 楼 mougaidong 的回复:
定义一个靠近WORD指针,可能能用来指向Excel文件吧


靠近WORD指针???
这个跟 WORD指针 有什么不一样吗?


一楼瞎说的,楼主当没看见,在下仅仅是为了顶你。
让楼下的高手们帮你解决,别在意。
[/Quote]

多谢多谢~~
turing-complete 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaojunjun1202 的回复:]

引用 1 楼 mougaidong 的回复:
定义一个靠近WORD指针,可能能用来指向Excel文件吧


靠近WORD指针???
这个跟 WORD指针 有什么不一样吗?
[/Quote]

一楼瞎说的,楼主当没看见,在下仅仅是为了顶你。
让楼下的高手们帮你解决,别在意。
xiaojunjun1202 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mougaidong 的回复:]
定义一个靠近WORD指针,可能能用来指向Excel文件吧
[/Quote]

靠近WORD指针???
这个跟 WORD指针 有什么不一样吗?
turing-complete 2011-09-02
  • 打赏
  • 举报
回复
定义一个靠近WORD指针,可能能用来指向Excel文件吧

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧