何システムが利用不均一ポインタ表現?[重複]
-
27-09-2019 - |
質問
可能な重複:
いのあるソリューポインタの異なる種類の異なる寸法ですか。
だったのでいくつかの場所にそのポインタの種類が異なる表現の標準不適合Cの実装方法です。このことが必要であるキャストポインタを引数はprintf、例えば
int foo;
printf("address is %p\n", (void *) &foo);
僕も最初は半信半疑でしたがこのやつかのC99基準書WG14N1256用意されており、 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf).で6.2.5.27でを読み込み:
ポインタをボイドは同じ表現とアライメントの要件として ポインタを文字タイプです。同様に、ポインタを格で絶版 対応種類は同じ表現とアライメント。すべてのポインタの構造と種類は同じ表現とアライメント要件 しています。すべてのポインタを合の種類は同じ表現 配置を要求しています。 ポインタのその他の種類が必要なの 代表、アライメント。
では実際の音のように適C99の実装が異なった表現のためのポインタの異なる種類です。
私の質問は、この: どのC実装/建築存在することを実際に利用し異なった表現のためのポインタの種類?
解決
クラシックCray(ほとんどの新製品をいったアドレス文字を通常のポインタで、 char*
そのため、 void*
のようなネイティブのベクトルポインタ.
(キーのコメントは以下です。ありが異なっている可能性がありABIの使用、回転させながら、低いためのアドレスのビットの高次末においても行うこともあり、"美"と"粗"ポインタに対応する。)
他のヒント
おそらく最もよく知られているものとして、実際のモードのx86プロセッサによって、16ビットのデータポイントと32ビットの関数ポインタによって記憶モデルを選択(またはき32ビットのデータポインタの16ビット関数ポインタの違いによるものなのか、それともつかなかった異な---).