この文書の現在のバージョンと選択したバージョンの差分を表示します。
構造体_共用体_ビットフィールドの活用 [2011/11/29 20:22] member |
構造体_共用体_ビットフィールドの活用 [2011/12/01 22:05] (現在) member |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== 構造体_共用体_ビットフィールドの活用 ====== | + | ====== 構造体 ====== |
構造体、共用体、ビットフィールドを使うと変数の管理が格段楽になり、ソースが見やすくなります。C言語を使う中でぜひマスターしてほしい項目だと思います。難しいと思っている人も多いようですが、フォーマットさえわかればそれをコピペでもして、使えると思います。 | 構造体、共用体、ビットフィールドを使うと変数の管理が格段楽になり、ソースが見やすくなります。C言語を使う中でぜひマスターしてほしい項目だと思います。難しいと思っている人も多いようですが、フォーマットさえわかればそれをコピペでもして、使えると思います。 | ||
ライン 34: | ライン 34: | ||
構造体というのは今の例のように変数名を入れ子構造にして管理しようという概念です。さて、実際の文法をみていきましょう。ここでは詳しくはかかないので適当にこの表現を真似するなりしてください。\\ | 構造体というのは今の例のように変数名を入れ子構造にして管理しようという概念です。さて、実際の文法をみていきましょう。ここでは詳しくはかかないので適当にこの表現を真似するなりしてください。\\ | ||
<code c> | <code c> | ||
- | typedef struct{ | + | typedef struct{ //これが構造体の型宣言する部分 |
struct{ | struct{ | ||
char niigataken; | char niigataken; | ||
char akitaken; | char akitaken; | ||
char hokkaidou; | char hokkaidou; | ||
- | }koshihikari | + | }koshihikari //koshihikariという構造体を入れ子にしている |
- | int sasanishiki; | + | int sasanishiki; //型の違う変数もまとめて扱える |
float hitomebore; | float hitomebore; | ||
- | unsigned char akitakomachi; | + | unsigned char akitakomachi; |
- | } kome_t | + | char komekome_club[20]; //構造体の中で配列も宣言できる。 |
+ | |||
+ | } kome_t //kome_tが構造体の型名 | ||
+ | |||
+ | kome_t kome_data_1; //ここが構造体変数の宣言 | ||
+ | kome_t kome_data_2; | ||
+ | kome_t kome_data_array[100] //構造体の配列も作ることができる | ||
+ | kome_data_1.sasanisiki = 15; //構造体の変数に値を代入 | ||
+ | kome_data_2.koshihikari.niigataken = 55; | ||
+ | kome_data_1.komekome_club[10] = 12; //構造体の中の配列に値を代入 | ||
+ | kome_data_array[35].koshihikari.hokkaidou //構造体の配列に値を代入 | ||
+ | |||
+ | kome_data_1 = kome_data_2; //同じ型の構造体同士は値の代入ができる。 | ||
+ | |||
</code> | </code> | ||
+ | こんな感じで、使ってみてください。structの前についているtypedefはまあ、気になるんだったら調べてください。共用体、ビットフィールドについては次のページで説明します。 | ||