在下面的结构定义上,有一行带有宏定义(#define
)。那条线到底是做什么的?我知道它为数组的第一个条目创建了一个别名h_addr_list
,但它对我来说仍然很奇怪。是h_addr
struct 的成员hostent
吗?这个定义是否只在结构的范围内?
struct hostent
{
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of addresses from name server */
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
};