C++ コードを書いていて、誤って関数名を省略しましたWSASocket
。しかし、コンパイラはエラーを発生せず、SOCKET
有効なソケットではなく整数値 1 を関連付けました。
問題のコードは次のようになるはずです。
this->listener = WSASocket(address->ai_family, address->ai_socktype, address->ai_protocol, NULL, NULL, WSA_FLAG_OVERLAPPED);
しかし、実際には次のようになりました。
this->listener = (address->ai_family, address->ai_socktype, address->ai_protocol, NULL, NULL, WSA_FLAG_OVERLAPPED);
他の言語から来たこの見た目ある種の匿名型である可能性があります。実際に機能である場合、機能の名前は何ですか?
その目的は何ですか?
どこから始めればよいかわからない場合、検索するのは困難です。
ベストアンサー1
カンマ演算子† は左側を評価し、その値を破棄し、結果として右側を生成します。WSA_FLAG_OVERLAPPED
は 1 であり、これが式の結果です。他のすべての値は破棄されます。ソケットは作成されません。
† 過負荷にならない限り。はい、過負荷になることがあります。いいえ、過負荷にしないでください。今すぐキーボードから離れてください。