目次から探す
enum型を構造体に含める方法
C言語では、enum型
を構造体に含めることができます。
enum型
は、複数の定数をグループ化して扱うためのデータ型であり、構造体は複数の異なるデータ型をまとめて扱うためのデータ型です。
enum型
を構造体に含めることで、関連するデータを一つの構造体で管理することができます。
enum型を構造体のメンバとして定義する方法
enum型
を構造体のメンバとして定義する場合、まずenum型
を定義し、その後に構造体を定義します。
以下に例を示します。
#include <stdio.h>
// enum型の定義
enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
};
// 構造体の定義
struct Date {
int year;
int month;
int day;
enum Weekday weekday; // enum型をメンバとして含める
};
int main() {
struct Date today;
today.year = 2022;
today.month = 1;
today.day = 1;
today.weekday = SATURDAY;
printf("今日は%d年%d月%d日で、曜日は%dです。\n", today.year, today.month, today.day, today.weekday);
return 0;
}
上記の例では、enum型
のWeekday
を構造体Date
のメンバとして含めています。
Date
構造体のインスタンスtoday
を作成し、そのメンバに値を代入しています。
最後に、printf関数
を使ってtoday
の値を表示しています。
enum型を構造体のポインタとして定義する方法
enum型
を構造体のポインタとして定義する場合も、同様にenum型
と構造体を定義します。
以下に例を示します。
#include <stdio.h>
// enum型の定義
enum Color {
RED,
GREEN,
BLUE
};
// 構造体の定義
struct Rectangle {
int width;
int height;
enum Color* color; // enum型のポインタをメンバとして含める
};
int main() {
enum Color myColor = RED;
struct Rectangle myRect;
myRect.width = 10;
myRect.height = 20;
myRect.color = &myColor;
printf("幅:%d、高さ:%d、色:%d\n", myRect.width, myRect.height, *myRect.color);
return 0;
}
上記の例では、enum型
のColor
を構造体Rectangle
のメンバとして含めています。
Rectangle
構造体のインスタンスmyRect
を作成し、そのメンバに値を代入しています。
color
メンバはenum型
のポインタとして定義されており、myColor
のアドレスを代入しています。
最後に、printf関数
を使ってmyRect
の値を表示しています。
以上が、C言語でenum型
の変数を構造体に含める方法の解説です。
enum型
を構造体に含めることで、関連するデータをまとめて管理することができます。