社区
C++ 语言
帖子详情
typedef WORD near *PWORD;
xiaojunjun1202
2011-09-02 02:50:40
神马意思?
...全文
489
8
打赏
收藏
typedef WORD near *PWORD;
神马意思?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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文件吧
《C深度解析》第7、8章 结构体/共用体/枚举,杂项(自动类型转换、大小端序等)
第7章: 1. 结构体 结构体定义、访问、传参,结构体对齐(offsetof宏... 枚举 第8章: 自动类型转换、大小端序、
typedef
、编译器优化、extern "C"、程序调试、变参函数、do{}while(0)、内嵌汇编、调试版与发行版、断言
C语言
typedef
和Windows数据类型
typedef
的作用是给已知的数据类型命名别名,起到下列作用; 1 复杂的数据类型名称简化 2 用
typedef
定义与平台无关的数据类型 3 增强代码可读性 4 避免错误 一个使用
typedef
的示例程序如下; // tydemo.cpp ...
C++常用数据类型和Windows常见数据类型
typedef
WORD
n
ear
*P
WORD
;
typedef
WORD
far *LP
WORD
;
typedef
long far *LPLONG;
typedef
D
WORD
n
ear
*PD
WORD
;
typedef
D
WORD
far *LPD
WORD
;
typedef
void far *LPVOID;
typedef
CONST void far *LPCVOID; ...
C++学习记录(2)
CSize CSize类 类CSize是对Windows结构SIZE的封装,凡是能用SIZE结构的地方都...
typedef
struct tagSIZE{ LONG cx; LONG cy; } SIZE; 其中 cx、cy分别是宽度和高度。 BEGIN_MESSAGE_MAP(CADHistDoc, CDocument) //...
WINDEF.H中的n
ear
与far
typedef
BOOL n
ear
*PBOOL;
typedef
BOOL far *LPBOOL;
typedef
BYTE n
ear
*PBYTE;
typedef
BYTE far *LPBYTE;
typedef
int n
ear
*PINT;
typedef
int far ...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章