C言語歴は5年位ですが、いまだわからない事だらけのPG/SEです。
以下の場合、どちらも構造体のサイズは8になると思っていたのですが、違うようです。
又、struct bitsの書き方を記載しているC言語の書籍も見たこともありません。
どういった場合に使われるのでしょうか。
#include <stdio.h> // ビットフィールドの宣言とメンバの初期化 struct bits { unsigned char b1 : 1; // メンバの初期化 unsigned char b2 : 1; unsigned char b3 : 1; unsigned char b4 : 1; unsigned char b5 : 1; unsigned char b6 : 1; unsigned char b7 : 1; unsigned char b8 : 1; }; struct bits2 { unsigned char b1; unsigned char b2; unsigned char b3; unsigned char b4; unsigned char b5; unsigned char b6; unsigned char b7; unsigned char b8; }; void main(int argc, char *argv[]) { printf("bitsのサイズは%ldバイトです\n", sizeof(struct bits)); printf("bits2のサイズは%ldバイトです\n", sizeof(struct bits2)); }
実行結果
bitsのサイズは1バイトです
bits2のサイズは8バイトです
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/08 14:53