2

このコードに遭遇しました:

(stuct sockadrr*)&servaddr 

どういう意味ですか?どういうわけか構造体をキャストしservaddrますか?

このコードの構文と C での意味を理解しようとしています。

4

2 に答える 2

3

何らかの方法で構造体を servaddr にキャストしますか?

いいえ、逆に、 のアドレスをservaddrへのポインターにキャストしますstruct sockaddr

servaddrタイプが の場合foo&servaddrfoo*へのポインタfooです。へのポインターを期待する関数を呼び出すstruct sockaddr場合は、型に互換性がある場合はキャストする必要があります。これにより、 a を afoo*として渡すことができstruct sockaddr*ます。

于 2012-11-23T16:56:21.923 に答える
2

sockaddr_inさまざまなソケット関数が、汎用ネットワーク アドレスをパラメーターとして受け取るように宣言されています。関数にパラメーターとして渡すために、特定のネットワーク アドレス構造体 (例: ) のアドレスをキャストします。

于 2012-11-23T16:57:57.100 に答える