腕時計の沼、オーディオの沼、PCの沼。『タクジの沼』
2つ以上の関連するメンバからなるデータ型の集合または、複合のこと。
配列とは違い、同じ型に限定されない関連するデータメンバの集合です。
strcut タグ名{ 型 メンバ1; 型 メンバ2; 型 メンバ3; ... 型 メンバN; }変数リスト;
一旦構造体の型を定義すれば、その方の変数をいくつでも作ることができます。
strcut タグ名 変数リスト;
構造体にアクセスするにはポインタを利用するのが一般的な方法です。
strcut s_type{
int i;
char str[800];
}s, *p; /* 変数sと、s_type型の構造体を差すポインタp */
pはsの戦闘アドレスを指し、pを通じてsにアクセスすることができます。
p->i = 1;
構造体は、他の構造体をメンバとすることもできます。
[例]構造体のネストを使用して、2つの部品製造ラインの生産性についての情報を保持、各ラインには10人
#define NUM_ON_LINE 10
strcut woker{
char name[80];
int avg_units_per_hour;
int avg_errs_per_hour;
};
struc asm_line{
int product_code;
double material_cost;
strcut worker wkere[NUM_ON_LINE];
}line1, line2;
line1構造体のwkers配列の2つ目の要素であるworker型構造体のavg_units_per_hourメンバに値12を代入するには、次の分を使用します。
line1, wkers[1].avg_units_per_hour = 12;
2つ以上の変数によって共有されるメモリ上の単一の領域のことを指します。 メモリを共有する変数は、型が異なってしてもかまわないが、一度に1つの変数しか使用することはできません。
union タグ名{ 型 メンバ1; 型 メンバ2; 型 メンバ3; ... 型 メンバN; }変数名;