首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++网络程序设计中一个系统定义美的结构体中成员的定义方式不懂

2012-11-10 
C++网络程序设计中一个系统定义好的结构体中成员的定义方式不懂?我正在学习C++网络程序设计,下面这个结构

C++网络程序设计中一个系统定义好的结构体中成员的定义方式不懂?
我正在学习C++网络程序设计,下面这个结构体是我从某书上看到的,这个结构体是系定义好的,但是其中的成员定义让我搞不懂,哪位告诉我哈?

C/C++ code
struct  hostent {        char    FAR * h_name;           /* official name of host */        char    FAR * FAR * h_aliases;  /* alias list */        short   h_addrtype;             /* host address type */        short   h_length;               /* length of address */        char    FAR * FAR * h_addr_list; /* list of addresses */#define h_addr  h_addr_list[0]          /* address, for backward compat */};


我的疑问是:aliases和h_addr_list成员的类型指定让我犯糊涂,为什么这两个成员的类型要指定为char FAR * FAR *,两个FAR *放在一起表示什么意思啊?

如果以
char FAR * h_aliases;
char FAR * h_addr_list;
定义这两个成员可以吗,这两种的定义方式有什么区别呢?

麻烦各位说得详细点,初次接触c++网络编程,希望各位多关照下。

[解决办法]
FAR可以不看。
struct hostent {
char * h_name; /* official name of host */
char ** h_aliases; /* alias list */
short h_addrtype; /* host address type */
short h_length; /* length of address */
char ** h_addr_list; /* list of addresses */
#define h_addr h_addr_list[0] /* address, for backward compat */
};
[解决办法]
你可以看看FAR 的定义,是个空宏,只具提示意义,相当于:
C/C++ code
struct  hostent {        char    * h_name;           /* official name of host */        char    ** h_aliases;  /* alias list */        short   h_addrtype;             /* host address type */        short   h_length;               /* length of address */        char    ** h_addr_list; /* list of addresses */#define h_addr  h_addr_list[0]          /* address, for backward compat */}; 

热点排行