以下の構造体の定義に、マクロ定義の行があります ( #define
)。その行は正確に何をしますか?array の最初のエントリにエイリアスを作成することは理解していますh_addr_list
が、それでも奇妙に見えます。h_addr
構造体のメンバーですか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 */
};