如何初始化struct in6_addr?

Jic*_*hao 3 network-programming ipv6

我知道有一种方法可以做到这一点,

const struct in6_addr naddr6 = { { 
                0x3f, 0xfe, 0x05, 0x01,
                0x00, 0x08, 0x00, 0x00, 
                0x02, 0x60, 0x97, 0xff,
                0xfe, 0x40, 0xef, 0xab
}};
Run Code Online (Sandbox Code Playgroud)

但不能用这个,

const struct in6_addr naddr6 = 
                { { { 0x3ffe0501, 0x00080000, 0x026097ff, 0xfe40efab } } }; 
Run Code Online (Sandbox Code Playgroud)

似乎我可以1/2/3巴黎的括号.为什么?

谢谢.

jam*_*att 8

这样做的便携方式是这样的:

struct in6_addr s6 = { };
if (!IN6_IS_ADDR_UNSPECIFIED(&s6))
  inet_pton(AF_INET6, "2001:db8::1", &s6);
Run Code Online (Sandbox Code Playgroud)