問題① 「幅」と「高さ」のペアを、int型、あるいは float型で管理できるような共用体を作成してください。
次のようになります。
#include <stdio.h>
union Size_tag {
struct {
int w;
int h;
} i;
struct {
float w;
float h;
} f;
};
int main(void)
{
union Size_tag s1 = {{10, 20}};
union Size_tag s2;
.f.w = 7.5f;
s2.f.h = 9.5f;
s2
("%d %d\n", s1.i.w, s1.i.h);
printf("%f %f\n", s2.f.w, s2.f.h);
printf}
実行結果:
10 20
7.500000 9.500000
複数のメンバの組み合わせ (ここでは、幅と高さ)が複数(int型版と float型版)あり、同時に使うのが、いずれかの組み合わせだけであるのなら、メンバに構造体型の変数を持つ共用体を定義すればよいです。組み合わせの1つ1つを、個別の構造体の中にまとめている感覚です。
{
の直後と、}
の直前に空白を入れない)(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)練習問題を差し替え。元の問題の内容は、本編での解説に昇格した。
ビットフィールドの話題を、第56章へ移動。
章のタイトルを変更(「共用体とビットフィールド」->「共用体」)
新規作成。第50章から持ってきた。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |