簡體   English   中英

IPv6地址獲取功能?

[英]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為從索引0sizeof(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM