Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #123632
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Recasting data as long ints and chars |
| Date | 2017-11-30 11:40 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <87fu8w2dv9.fsf@bsb.me.uk> (permalink) |
| References | (6 earlier) <ovk5ev$ee3$1@dont-email.me> <87efohsxin.fsf@bsb.me.uk> <RrDMy1cnJtEcOsyJAqgdzUr1TUNmG@bongo-ra.co> <87bmjklh7u.fsf@bsb.me.uk> <lnindsy3y6.fsf@kst-u.example.com> |
Keith Thompson <kst-u@mib.org> writes:
> Ben Bacarisse <ben.usenet@bsb.me.uk> writes:
>> Spiros Bousbouras <spibou@gmail.com> writes:
>>> On Wed, 29 Nov 2017 01:07:28 +0000
>>> Ben Bacarisse <ben.usenet@bsb.me.uk> wrote:
>>>> unsigned nb = 0;
>>>> unsigned U_ORDER = 0;
>>>>
>>>> and loop setting
>>>>
>>>> (U_ORDER << CHAR_BIT) | nb++
>>>
>>> If sizeof(unsigned) == 1 then U_ORDER << CHAR_BIT
>>> is undefined behaviour.
>>
>> Why?
>
> Because CHAR_BIT (which would have to be at least 16) would be equal to
> the width of the left operand.
Ah, yes, thanks (and to Spiros Bousbouras).
> N1570 6.5.7p3:
<snip>
>> But that's a side issue.
Though this UB it's not an issue in the loop I was imagining (because
the loop won't run when there is only one byte), having to check that
made me spot another error: nb should be initialised 1. I.e. I was
suggesting replacing the compile-time
unsigned U_ORDER = 0x00010203;
with
unsigned nb = 1;
unsigned U_ORDER = 0;
while (nb < sizeof U_ORDER)
U_ORDER = (U_ORDER << CHAR_BIT) | nb++;
Of course padding bits can make this go wrong, but life is short...
--
Ben.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-19 21:11 +0000
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-23 00:50 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-26 15:55 +0000
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-26 23:55 +0000
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-11-27 06:43 +0000
Re: Recasting data as long ints and chars "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-11-27 09:26 +0100
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-11-27 08:50 +0000
Re: Recasting data as long ints and chars "James R. Kuyper" <jameskuyper@verizon.net> - 2017-11-27 10:35 -0500
Re: Recasting data as long ints and chars supercat@casperkitty.com - 2017-11-27 08:00 -0800
Re: Recasting data as long ints and chars "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-11-27 23:49 +0100
Re: Recasting data as long ints and chars jameskuyper@verizon.net - 2017-11-27 15:56 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-15 12:45 -0800
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-27 15:08 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-27 14:55 +0000
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-27 15:51 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-28 17:13 +0000
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-29 01:07 +0000
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-11-29 18:59 +0000
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-30 00:53 +0000
Re: Recasting data as long ints and chars Keith Thompson <kst-u@mib.org> - 2017-11-29 17:01 -0800
Re: Recasting data as long ints and chars Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-11-30 11:40 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-30 19:53 +0000
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-11-29 18:37 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-11-30 22:38 +0000
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-12-07 05:06 +0000
Re: Recasting data as long ints and chars supercat@casperkitty.com - 2017-12-07 07:51 -0800
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2017-12-08 23:14 +0000
Re: Recasting data as long ints and chars supercat@casperkitty.com - 2017-12-12 16:19 -0800
Re: Recasting data as long ints and chars Keith Thompson <kst-u@mib.org> - 2017-12-12 17:10 -0800
Re: Recasting data as long ints and chars supercat@casperkitty.com - 2017-12-13 09:02 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-15 12:39 -0800
Re: Recasting data as long ints and chars Robert Wessel <robertwessel2@yahoo.com> - 2017-12-15 17:39 -0600
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-15 15:52 -0800
Re: Recasting data as long ints and chars Robert Wessel <robertwessel2@yahoo.com> - 2017-12-16 00:35 -0600
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-17 14:02 -0800
Re: Recasting data as long ints and chars "Chris M. Thomasson" <invalid_chris_thomasson@invalid.invalid> - 2017-12-17 15:15 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-17 18:47 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-17 14:09 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-17 14:19 -0800
Re: Recasting data as long ints and chars herrmannsfeldt@gmail.com - 2017-12-17 14:45 -0800
Re: Recasting data as long ints and chars Spiros Bousbouras <spibou@gmail.com> - 2017-12-13 19:13 +0000
Re: Recasting data as long ints and chars James Harris <james.harris.1@gmail.com> - 2018-02-10 05:46 +0000
csiph-web