たとえば、次の構造体があります。
typedef struct my_struct{
unsigned long a;
unsigned long b;
char* c;
unsigned int d1 :1;
unsigned int d2 :4;
unsigned int d3 :4;
unsigned int d4 :23;
} my_type, *p_type;
このフィールドは現在、からまでに到達するsd3
によって定義されています。#define
0x00
0x0D
実は、d3
列挙です。ですから、先に進んで交換するのは魅力的です
unsigned int d3 :4;
に
my_enum d3 :4;
これは安全/許可されていますか?
コードはさまざまなものでコンパイルする必要があります
- コンパイラー(GCC、Visual Studio、組み込みのもの)
- プラットフォーム(Win32、Linux、組み込みのもの)
- 構成(Cとしてコンパイル、C ++としてコンパイル)
明らかに、の定義をd3
そのままにして、コードで列挙型を使用したり、に割り当てたりすることはできますd3
が、C++では機能しません。