[英]IPv6 address get function?
unsigned char networkMask [sizeof (struct in6_addr)] = { [0 ... (sizeof (struct in6_addr) - 1)] = 0xff };
(0...(sizeof))
在這里代表什么。 如何分配此數組。
此特定語法是指定初始值設定項的GCC擴展。 有了它,你可以像這樣初始化一個數組:
unsigned char foo[<n>] = { [0 ... <n> - 1] = <k> };
其中<n>
是成員數, <k>
是任何給定成員值。
在您顯示的代碼中,它使用0xff
為從索引0
到sizeof(struct in6_addr) - 1
元素初始化networkMask
數組。 換句話說,它初始化一個struct in6_addr
的數組,並將所有位設置為1
。
考慮到IPv6地址占用16個字節,它將等同於此:
unsigned char networkMask[sizeof(struct in6_addr)] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.