请看看这是什么类型
请看看这是什么数据类型呀!
unsigned int far *clock=(unsigned int far *)0x0000046cl
其中的far是什么意思呀!请详细解答呀!谢谢了!
问题点数:10、回复次数:7Top
1 楼johninprc(窘)回复于 2003-02-04 20:20:18 得分 0
似乎是远指针,表明地址偏移量为4字,与汇编有关。不过在C++我是首次见。Top
2 楼qhgary(Gary)回复于 2003-02-04 22:48:32 得分 0
vc 里面到处都是,居然说C++首次见Top
3 楼idler(告别teenage)(偶是豆子。。。)(歇业休息。。。)回复于 2003-02-04 23:05:34 得分 5
为了保持与16位平台下所写的代码的兼容性而保留的。哎,恼人的兼容性……
MSDN里的说明
Win32 不区分 near 和 far 地址。因为 NEAR 和 FAR 类型在 WINDEF.H 中定义,所以它们由包含文件自动处理,被包含文件重新定义为空的 Win32 字符串。因此,忽略 NEAR 和 FAR。如果没有包含 WINDEF.H,方便的解决方案是使用 /D 命令行选项将关键字替换为空字符串。例如:
/D_near= /D_far= /D__near= /D__far=
Top
4 楼yueliang1982(.Net Framework)回复于 2003-02-05 00:50:06 得分 0
不懂呀!能通俗点么?谢了!Top
5 楼acange(acan)回复于 2003-02-05 02:26:20 得分 5
以前的操作系统象 win3.1 是16位的, 现在一般是32位的。
可以看出, 16位的地址空间是不够的, 所以他用偏移地址来扩大寻址范围, 这儿他用到了 far ptr 远指针。。
现在操作系统中32位, 每一个 process都有自己一个较大的flat的地址空间, 他用不着 far。
为了兼容以前的程序, 故还有。 但现在你编程, 可以不要考虑这些。。Top
6 楼idler(告别teenage)(偶是豆子。。。)(歇业休息。。。)回复于 2003-02-05 10:12:38 得分 0
正解Top
7 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2003-02-05 11:32:04 得分 0
远指针,用于访问64k以外的内存空间。Top




