#define TCP_SKB_CB( __skb ) ((struct tcp_skb_cb *)&((__skb)->cb[0]))
&
この場合、これはどういう意味ですか?
答え1
これは標準Cの「アドレス」演算子です。上記の構造は以下を意味します。
__skb
:マクロに割り当てられたパラメータ(次を指す)struct skbuff
)(__skb)->cb
:cb
skbの配列(__skb)->cb[0]
: 配列の最初の要素&((__skb)->cb[0])
: 最初の要素のアドレス((struct tcp_skb_cb *)&((__skb)->cb[0]))
:最初の要素のアドレスで、ポインタに変換されます。struct tcp_skb_cb