From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Gon Solo <gonsolo@gmail.com>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>,
Mauro Carvalho Chehab <mchehab@infradead.org>, JP <jp@jpvw.nl>,
crope@iki.fi, Sean Young <sean@mess.org>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/4] media: si2168: use bits instead of bool for flags
Date: Thu, 10 Oct 2019 08:34:23 -0300 [thread overview]
Message-ID: <20191010083423.3fff672f@coco.lan> (raw)
In-Reply-To: <20191010105544.GA6507@Limone>
Em Thu, 10 Oct 2019 12:55:44 +0200
Gon Solo <gonsolo@gmail.com> escreveu:
> On Fri, Oct 04, 2019 at 10:15:22AM -0300, Mauro Carvalho Chehab wrote:
> > Using bool on struct is not recommended, as it wastes lots of
> > space. So, instead, let's use bits.
>
> Wouldn't "bool b:1;" even be better? I performed a little test:
>
> #include <stdbool.h>
> #include <stdio.h>
>
> struct uints {
> unsigned int a0;
> unsigned int a1;
> unsigned int a2;
> unsigned int a3;
> unsigned int a4;
> unsigned int a5;
> unsigned int a6;
> unsigned int a7;
> };
>
> struct bools {
> bool a0;
> bool a1;
> bool a2;
> bool a3;
> bool a4;
> bool a5;
> bool a6;
> bool a7;
> };
>
> struct bit_uints {
> unsigned int a0:1;
> unsigned int a1:1;
> unsigned int a2:1;
> unsigned int a3:1;
> unsigned int a4:1;
> unsigned int a5:1;
> unsigned int a6:1;
> unsigned int a7:1;
> };
>
> struct bit_bools {
> bool a0:1;
> bool a1:1;
> bool a2:1;
> bool a3:1;
> bool a4:1;
> bool a5:1;
> bool a6:1;
> bool a7:1;
> };
>
> int main() {
> printf("bit_uints: %ld\n", sizeof(struct bit_uints));
> printf("bit_bools: %ld\n", sizeof(struct bit_bools));
> printf("uints: %ld\n", sizeof(struct uints));
> printf("bools: %ld\n", sizeof(struct bools));
> }
>
> Result:
>
> bit_uints: 4
> bit_bools: 1
> uints: 32
> bools: 8
>
> I know with different types within the struct it looks different, but
> still.
No. In practice, the compiler will add 3 bytes of pad after bit_bools
(on 32-bit archs), due to performance reasons.
Using "unsigned int" makes it clearer.
Thanks,
Mauro
next prev parent reply other threads:[~2019-10-10 11:34 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-30 10:32 DVB-T2 Stick Gonsolo
2019-02-19 21:30 ` Sean Young
2019-10-01 22:19 ` Gonsolo
2019-10-01 23:52 ` Mauro Carvalho Chehab
2019-10-02 14:13 ` [PATCH] si2157: Add support for Logilink VG0022A Gon Solo
2019-10-02 14:13 ` Gon Solo
2019-10-02 14:27 ` Sean Young
2019-10-02 14:44 ` Gonsolo
2019-10-02 15:06 ` Sean Young
2019-10-02 15:21 ` Gonsolo
2019-10-02 17:23 ` JP
2019-10-02 18:49 ` Mauro Carvalho Chehab
2019-10-03 8:06 ` [PATCH 0/1] Testing timing patch " Gon Solo
2019-10-03 8:06 ` [PATCH 1/1] Test Mauros timing patch Gon Solo
2019-10-03 10:13 ` [PATCH] si2157: Add support for Logilink VG0022A Gonsolo
2019-10-03 10:57 ` Gonsolo
2019-10-03 11:17 ` Mauro Carvalho Chehab
2019-10-03 11:41 ` Gonsolo
2019-10-03 12:49 ` Mauro Carvalho Chehab
2019-10-03 12:52 ` Mauro Carvalho Chehab
2019-10-03 13:02 ` Gon Solo
2019-10-03 13:53 ` Gonsolo
2019-10-03 14:05 ` Mauro Carvalho Chehab
2019-10-03 14:29 ` Gonsolo
2019-10-03 12:01 ` Gon Solo
2019-10-03 12:12 ` Mauro Carvalho Chehab
2019-10-03 12:20 ` Gon Solo
2019-10-03 12:45 ` [PATCH 0/3] " Gon Solo
2019-10-03 12:45 ` [PATCH 1/3] [PATCH] af9035: Better explain how i2c bus speed is computed Gon Solo
2019-10-03 12:45 ` [PATCH 2/3] [PATCH] s2157: Handle bogus chip version Gon Solo
2019-10-03 12:45 ` [PATCH 3/3] [PATCH] af9035: Add Logilink VG0022A id Gon Solo
2019-10-03 11:05 ` [PATCH] si2157: Add support for Logilink VG0022A Mauro Carvalho Chehab
2019-10-03 15:00 ` Gonsolo
2019-10-03 15:02 ` Mauro Carvalho Chehab
2019-10-03 15:17 ` Gonsolo
2019-10-03 16:03 ` Gon Solo
2019-10-03 16:09 ` Mauro Carvalho Chehab
2019-10-03 16:23 ` Gon Solo
2019-10-03 17:42 ` Mauro Carvalho Chehab
2019-10-03 17:49 ` Gonsolo
2019-10-03 18:32 ` Gon Solo
2019-10-03 18:42 ` JP
2019-10-03 18:50 ` Gonsolo
2019-10-03 18:53 ` Gonsolo
2019-10-03 19:19 ` Gonsolo
2019-10-03 19:39 ` Mauro Carvalho Chehab
2019-10-03 19:44 ` Mauro Carvalho Chehab
2019-10-03 19:51 ` Gonsolo
2019-10-03 20:03 ` Mauro Carvalho Chehab
2019-10-03 20:32 ` Gonsolo
2019-10-04 11:50 ` JP
2019-10-04 12:08 ` Mauro Carvalho Chehab
2019-10-04 13:15 ` [PATCH 1/4] media: si2168: use bits instead of bool for flags Mauro Carvalho Chehab
2019-10-04 13:15 ` [PATCH 2/4] media: si2168: add support for not loading a firmware Mauro Carvalho Chehab
2019-10-04 13:15 ` [PATCH 3/4] media: af9035: add support for Logilink VG0022A Mauro Carvalho Chehab
2019-10-09 21:44 ` Gon Solo
2019-10-09 22:04 ` Gon Solo
2019-10-10 8:23 ` Gon Solo
2019-10-10 9:18 ` Gon Solo
2019-10-10 9:50 ` [PATCH 0/4] Add " Gon Solo
2019-10-10 10:10 ` Mauro Carvalho Chehab
2019-10-10 9:51 ` [PATCH 1/4] si2168: Use bits and convert to kernel-doc format Gon Solo
2019-10-10 9:51 ` [PATCH 2/4] si2157: Add option for not downloading firmware Gon Solo
2019-10-10 9:51 ` [PATCH 3/4] af9035: Make speed computation clear Gon Solo
2019-10-10 9:51 ` [PATCH 4/4] Add support for Logilink VG0022A Gon Solo
2019-10-10 11:44 ` Gon Solo
2019-11-15 18:06 ` Gon Solo
2019-10-04 13:15 ` [PATCH 4/4] media: af9035: add the formula used for the I2C speed Mauro Carvalho Chehab
2019-10-10 10:55 ` [PATCH 1/4] media: si2168: use bits instead of bool for flags Gon Solo
2019-10-10 11:34 ` Mauro Carvalho Chehab [this message]
2019-10-10 11:42 ` Mauro Carvalho Chehab
2019-10-04 13:50 ` [PATCH] si2157: Add support for Logilink VG0022A JP
2019-10-04 14:16 ` Mauro Carvalho Chehab
2019-10-03 19:40 ` Gonsolo
2019-10-03 19:52 ` Mauro Carvalho Chehab
2019-10-03 19:57 ` Gonsolo
2019-10-02 15:00 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191010083423.3fff672f@coco.lan \
--to=mchehab+samsung@kernel.org \
--cc=crope@iki.fi \
--cc=gonsolo@gmail.com \
--cc=jp@jpvw.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@infradead.org \
--cc=sean@mess.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).