1.構造
C配列を使用すると、同じタイプのデータ項目を格納できる変数を定義できます。この構造は、Cプログラミングで使用できる別のユーザー定義のデータ型です。さまざまなタイプのデータ項目を格納できます。この構造は、記録。
structステートメントは、複数のメンバーを含む新しいデータ型を定義します。structステートメントの形式は次のとおりです。
構造体タグ{
メンバーリスト
メンバーリスト
メンバーリスト
..。
}変数リスト;
タグは構造タグです
member-listは標準の変数定義です
変数リストは構造体変数であり、構造体の最後で、最後のセミコロンの前に1つ以上の構造体変数を指定できます。
例えば:
struct Books{
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
@通常の状況では、tag、member-list、variable-listの3つの部分のうち少なくとも2つが表示される必要があります
@他のタイプの変数と同様に、構造変数の初期値は定義時に指定できます
@構造体のメンバーにアクセスするには、メンバーアクセス演算子(。)を使用します。メンバーアクセス演算子は、構造変数名とアクセスする構造メンバーの間のピリオドです。structキーワードを使用して、構造体タイプの変数を定義できます
@構造体を関数パラメーターとして使用できます。パラメーターを渡す方法は、他のタイプの変数またはポインターと同様です。
@他のタイプの変数へのポインターを定義するのと同様の方法で、構造体へのポインターを定義できます
2.補足:ビットフィールド
一部の情報が格納されている場合、それは完全なバイトを占有する必要はありませんが、数ビットまたは1つのバイナリビットのみを占有します。たとえば、スイッチ値を格納する場合、0と1の2つの状態のみがあり、1ビットのバイナリを使用するだけです。ストレージスペースを節約し、処理を容易にするために、C言語は「ビットフィールド」または「ビットセグメント」と呼ばれるデータ構造を提供します。
いわゆる「ビットフィールド」は、バイト内のバイナリビットをいくつかの異なる領域に分割し、各領域のビット数を指定することです。各ドメインにはドメイン名があり、プログラム内のドメイン名で操作できます。このようにして、いくつかの異なるオブジェクトを1バイトのバイナリビットフィールドで表すことができます。
ビットフィールドの使用は構造体メンバーの使用と同じであり、その一般的な形式は次のとおりです。
ビットフィールド変数名。ビットドメイン名 ビットフィールド変数名->ビットドメイン名