char FAR* FAR*是什么意思?解决方法

char FAR* FAR*是什么意思?
struct   hostent   {
    char   FAR*   h_name;
    char   FAR*   FAR*   h_aliases;
    short   h_addrtype;
    short   h_length;
    char   FAR*   FAR*   h_addr_list;
};

h_aliases和h_addr_list这样定义吗?晕,没见过这样定义的。

------解决方案--------------------
你在看什么书?far已经是dos时代的东西了。
windows下面 FAR就是空格,直接忽略就可以了。

------解决方案--------------------
如果你现在不是在进行dos编程,就不要那么好奇心强了。
这还不是一行字就能说清楚的。
------解决方案--------------------
在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。