ビットフィールドに関してgccの興味深いプロパティに気づきました。次のようなものを作成した場合struct
:
template <int N>
struct C
{
unsigned long long data : N;
};
次に、amd64で:
- -m64の場合、 N∊ <1、64> 、
sizeof(C) == 8
; - -m32の場合、 N∊ <1、32 >の場合、およびN∊ < 33、64
sizeof(C) == 4
>の場合、sizeof(C) == 8
。
(とsizeof(unsigned long long) == 8
)。
これは、私のシステム上にあるという事実を除けば、ほとんどC99 / C++11に似ているようです。しかし、たとえば、(常に結果として)に似たものを再現することはできません。uint_fastXX_t
sizeof(uint_fast8_t) == 1
__int128
sizeof(C) == 16
C ++ 98struct
の「貧乏人」の代わりとして前述のものを使用することはあなたにとって良い考えのように思われますか?uint_fastXX_t