このコードに遭遇しました:
(stuct sockadrr*)&servaddr
どういう意味ですか?どういうわけか構造体をキャストしservaddr
ますか?
このコードの構文と C での意味を理解しようとしています。
何らかの方法で構造体を servaddr にキャストしますか?
いいえ、逆に、 のアドレスをservaddr
へのポインターにキャストしますstruct sockaddr
。
servaddr
タイプが の場合foo
、&servaddr
はfoo*
へのポインタfoo
です。へのポインターを期待する関数を呼び出すstruct sockaddr
場合は、型に互換性がある場合はキャストする必要があります。これにより、 a を afoo*
として渡すことができstruct sockaddr*
ます。
sockaddr_in
さまざまなソケット関数が、汎用ネットワーク アドレスをパラメーターとして受け取るように宣言されています。関数にパラメーターとして渡すために、特定のネットワーク アドレス構造体 (例: ) のアドレスをキャストします。