ここでpthreads について読んでいました。ある例では、彼らはこのソース コードを提供していました。
スレッドの作成中に、関数 ! に void * 型としてキャストされた long 型を渡しています。
関数内では、この値を受け取り、逆キャストして long 値を取得します。
Q1: ポインター型をプリミティブ データ型に、またはその逆に変換することはできますか (C および C++ の場合)?
Q2. もしそうなら、これをするのは良いことですか?この long 型へのポインターを作成するべきではありません。このポインターを void * として型キャストし、関数に渡します。
プリミティブ型からポインター型への変換というこの考え方は、非常にわかりにくいと思いますか? 任意のポインタ型から void* への変換は理解できるが、なぜプリミティブ データ型が void* 型に格納されるのでしょうか? 特定のシステムで、プリミティブ型のサイズがポインター型に割り当てられたサイズよりも大きくなる可能性はありませんか?