構造体
変数には、いろいろな型があります。関数を作る時に、いくつかの複数の変数を一つのまとまりとして、パッケージ化する ことによって、大変効率よく、データのやり取りが出来るようになり、プログラムの見易さからいっても、多くの利点が 得られます。構造体は、C言語の型変数をユーザが任意に選んで、構造化して、新たな型もどきを定義することが出来ます。 構造体を定義するには、型の内容を宣言する部分と、その新しい型変数を定義する部分とが必要になります。
記述例
構造体を定義(宣言)する場合には、変数型を複数個、用意し、リストにして定義します。 構造体を構成する変数のリストは、セミコロン「;」で、1つのオブジェクトとして、1つづつ定義してゆきます。
#include <stdio.h> typedef struct { /* 構造体の宣言 */ char *coment1; /* 構造体のメンバとなる変数を定義する */ int val; }com_dat; /* 構造体の型の指定子の名前を決める */ int main(void) { com_dat mydata; /* ユーザ型(構造体)の変数定義、変数名の定義 */ mydata.coment1 = "my spesial data"; /* 構造体メンバへのアクセスと代入 */ mydata.val = 10; /* 構造体メンバへのアクセスと代入 */ printf("mydata.coment1 = %s\n", mydata.coment1); printf("mydata.val = %d\n", mydata.val); return 0; } |
typedef | ユーザ型を宣言する時に用いるC言語の予約語、構造体宣言の時によく使う |
---|---|
struct | 構造体を宣言する時に用いる予約語、構造体を宣言するときには、必ず必要 |
com_dat | 構造体の型変数を定義する時に必要となる識別子、型指定子としての「com_dat」を宣言する意味がある |
定義された構造体の中身の個々の変数へのアクセス(データのやり取り)は、構造体変数名に続いて「.」を用いて、 「mydata.coment1」のように記述します。構造体の中身の個々の変数のことを「構造体のメンバ」という言い方をします。