C言語学習[8]-構造

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バイトのバイナリビットフィールドで表すことができます。

ビットフィールドの使用は構造体メンバーの使用と同じであり、その一般的な形式は次のとおりです。

ビットフィールド変数名。ビットドメイン名
ビットフィールド変数名->ビットドメイン名

 

 

 

おすすめ

転載: blog.csdn.net/qq_46009608/article/details/115289014