10

MSVC2015 用に pthreads をコンパイルしようとしていますが、奇妙なコードが見つかりました。

localPtr->wNodePtr->spin := PTW32_TRUE;

この行は何をしているのですか?

4

4 に答える 4

5

他の人が指摘したよう:=に、有効な C オペレーターではありません。

ただし、この「演算子」は、v2.9.1 の時点であると思われる現在の「PThread for Windows:= 」ソース リリースで2 回見つかりました。

両方の発生は、「拡張リーダー/ライター キューベースのロックを実装ptw32_OLL_lock.cする」と宣言している に表示されますが、ビルドの一部ではないように見えるため、ファイルはコンパイラに渡されません。pthread*.dllptw32_OLL_lock.c

興味深いことに、問題のソース ファイルには が含まれており、サブディレクトリint main()にはありません。test

全体として、これはアルファ、ベータ、または単なるノイズのように思われるため、削除してください。

于 2015-07-01T16:35:20.903 に答える
2

:= は C では有効な演算子ではありません。

ただし、ALGOL 68 などの他の言語では使用されます。基本的には、この例の := を使用して、変数 PTW32_TRUE を localPty->wNodeptr->spin に割り当てます。

これは主に、割り当てに「=」を使用しないように、コードのあいまいさを取り除くために行われます。

于 2015-07-01T08:10:50.700 に答える
0

「:=」は Pascal 構文の変数への代入ですが、等価テストは「=」です。

于 2015-07-01T23:23:48.280 に答える