Path: csiph.com!news.neodome.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Representation of _Bool Date: Mon, 24 May 2021 13:15:11 -0700 Organization: None to speak of Lines: 39 Message-ID: <87lf8351o0.fsf@nosuchdomain.example.com> References: <87tums515a.fsf@nosuchdomain.example.com> <87wnromlnu.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="515a578b1fbda6d2e69cf5c5ac94ed10"; logging-data="9686"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Ypav5nKvJUQH2YhC2nlJK" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cancel-Lock: sha1:hCJM++5YBsFdf45berHp1MYEpbw= sha1:cPPUeYQq5ohWlYyRb7jFKWRahiw= Xref: csiph.com comp.lang.c:161143 Ben Bacarisse writes: > Keith Thompson writes: >> Conclusions: >> >> sizeof (_Bool) >= 1. It may be greater than 1, but that would >> be weird. If sizeof (_Bool) > 1, then it must have padding bits. > > I don't understand how you draw that last conclusion. [answered elsethread] > >> Here's a small program that attempts to explore how an implementation >> represents objects of type _Bool: >> >> #include >> #include >> >> union U { >> _Bool b; >> unsigned char rep; >> }; > > When doing this kind of thing, my preference is to write > > union U { > _Bool b; > unsigned char rep[sizeof (_Bool)]; > }; > > even when it's very unlikely that the size will be > 1. It makes the > purpose so very clear. Good point. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for Philips Healthcare void Void(void) { Void(); } /* The recursive call of the void */