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