3

C および C++ では、すべてのポインターがバイト単位で同じサイズであることが保証されていますか。つまり、次のようになります。

sizeof(void*) = sizeof(char*) = sizeof(int*) = ...

または、それが真実ではないいくつかの良いシステムがありますか?

4

1 に答える 1

0

いいえ。規格には保証がありません。

一部のシステムには例外があります。ただし、多くの典型的なシステムでは修正されており、そのシステムのアーキテクチャに依存しています。たとえば、32 ビット システムでは、ポインターは 4 バイトです。

ちなみに、uintptr_tポインターを保持できます (おそらく、現在のシステムのポインターの最大サイズを持っていると想定できます)。

uintptr_t ポインタを保持できる符号なし整数型

于 2013-05-10T12:13:04.043 に答える