Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #66594

Re: counting bytes

From Martin Shobe <martin.shobe@yahoo.com>
Newsgroups comp.lang.c
Subject Re: counting bytes
Date 2015-07-30 23:15 -0500
Organization A noiseless patient Spider
Message-ID <mpesmd$g3f$1@dont-email.me> (permalink)
References (11 earlier) <kfnk2tvosvz.fsf@x-alumni2.alumni.caltech.edu> <moj1qt$1ae$1@dont-email.me> <kfnr3nxh564.fsf@x-alumni2.alumni.caltech.edu> <motscs$uk3$1@dont-email.me> <kfnzj2dcxzr.fsf@x-alumni2.alumni.caltech.edu>

Show all headers | View raw


On 7/30/2015 1:16 PM, Tim Rentsch wrote:
> Martin Shobe <martin.shobe@yahoo.com> writes:
>
>> On 7/24/2015 11:49 AM, Tim Rentsch wrote:
>>> Martin Shobe <martin.shobe@yahoo.com> writes:
>>>
>>>> On 7/20/2015 8:33 AM, Tim Rentsch wrote:
>>>>> Martin Shobe <martin.shobe@yahoo.com> writes:
>>>>>
>>>>>> On 7/11/2015 10:21 AM, Tim Rentsch wrote:
>>>>>>> Richard Heathfield <rjh@cpax.org.uk> writes:
>>>>>>>
>>>>>>>> On 07/06/15 22:05, David Brown wrote:
>>>>>>>>
>>>>>>>> <snip>
>>>>>>>>
>>>>>>>>> * I believe there may be a theoretical opening in the standards
>>>>>>>>> for an architecture that has CHAR_BIT not equal to 8 and yet
>>>>>>>>> still has a uint8_t type.  But I am certain that I will never
>>>>>>>>> be using such a system.
>>>>>>>>
>>>>>>>> CHAR_BIT is guaranteed to be *at least* 8.  If it is not 8, it
>>>>>>>> must be greater than 8.
>>>>>>>>
>>>>>>>> The sizeof operator yields a size_t, which is the size (in
>>>>>>>> bytes) of its operand, and size_t has an unsigned integer type,
>>>>>>>> which means that it cannot represent fractional sizes.
>>>>>>>>
>>>>>>>> Since int8_t denotes a signed integer type with *exactly* 8 bits
>>>>>>>> (see 7.20.1.1(1), which makes this crystal clear), on a system
>>>>>>>> with CHAR_BIT greater than 8, it would have to have a fractional
>>>>>>>> size.
>>>>>>>>
>>>>>>>> Since the sizeof operator is both (a) required to yield the size
>>>>>>>> in bytes of its operand, and (b) unable to yield the size of an
>>>>>>>> int8_t on a system with CHAR_BIT > 8, we have a contradiction.
>>>>>>>> I deduce that such an implementation would not be conforming.
>>>>>>>
>>>>>>> The flaw in your argument is the assertion that integer types
>>>>>>> cannot reprepresent fractional values.  It is of course possible
>>>>>>> for integer types to represent fractional values, floating-point
>>>>>>> values, irrational values, transcendental values, or almost any
>>>>>>> other kind of values you can think of, by using padding bits and
>>>>>>> trap representations.
>>>>>>>
>>>>>>> It is possible to have a conforming implementation with
>>>>>>> CHAR_BIT > 8 but still having a type that occupies only eight
>>>>>>> bits.  AFAIK there is no reason such an implementation could
>>>>>>> not use that type to provide the [u]int8_t types.
>>>>>>
>>>>>> I suppose we could if we ignored the requirement that they have
>>>>>> no padding bits.
>>>>>
>>>>> I think you missed the key point of my comment - sorry that
>>>>> wasn't expressed more clearly.  The point of size_t being able
>>>>> to have fractional values is to be able to support units of
>>>>> memory that are less than a full character in width.  The type
>>>>> referred to above occupies only eight bits, ie, only half a
>>>>> character if CHAR_BIT is 16, and so would have no padding bits
>>>>> for [u]int8_t types.
>>>>
>>>> Yes, I did miss that you were talking about padding bits in
>>>> size_t.  Sorry.  However, 6.5.3.4p2 (in n1570) says that the
>>>> result of the sizeof operator is an integer.  I think that would
>>>> deal with your objection.
>>>
>>> That's true, but the Standard also allows extensions.  If types
>>> narrower than CHAR_BIT bits were provided as an extension,
>>> doesn't it seem reasonable to also extend sizeof to give a
>>> non-integral value for those types (not to be confused with
>>> 'extended integer types', which has a specific meaning)?
>>
>> It can't be conforming if it does (except for types that aren't
>> covered by the standard.  A conforming uint8_t wouldn't be one of
>> them.)
>
> Can you cite a passage from the Standard supporting that
> assertion?  The Standard says implementations may have extensions
> provided they don't alter the behavior of any strictly conforming
> program.  If undersized [u]int8_t types were provided only in
> cases where the program is not strictly conforming, as for
> example the '#include <Xstdint.h>' possibility I mentioned in
> response to Keith Thompson's post, what text in the Standard
> disallows that?  ISTM that a scenario along these lines is
> explicitly allowed by 4 p6.
>

It was my understanding that the goal was to build a standard conforming 
[u]int8_t. One of the constraints is that it must appear in <stdint.h>. 
Therefore, the following code must compile.

#include <stdint.h>

int main()
{
     uint8_t x = 7;

     return x - sizeof(uint8_t);
}

The standard says that sizeof() must return an integer. Since 
<Xstdint.h> wasn't included, how does it help you get around that 
requirement?

Martin Shobe

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

counting bytes bilsch01 <king621@comcast.net> - 2015-06-06 04:58 -0700
  Re: counting bytes Bartc <bc@freeuk.com> - 2015-06-06 13:05 +0100
    Re: counting bytes bilsch01 <king621@comcast.net> - 2015-06-06 05:24 -0700
      Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-06-06 05:41 -0700
        Re: counting bytes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-06-06 14:00 +0100
      Re: counting bytes Bartc <bc@freeuk.com> - 2015-06-06 13:52 +0100
      Re: counting bytes Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-06-06 10:27 -0400
        Re: counting bytes jt@toerring.de (Jens Thoms Toerring) - 2015-06-06 22:31 +0000
          THANKS EVERYBODY FOR THE INFO bilsch01 <king621@comcast.net> - 2015-06-06 23:35 -0700
            Re: THANKS EVERYBODY FOR THE INFO Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-06-07 10:08 +0100
              Re: THANKS EVERYBODY FOR THE INFO Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-06-07 09:22 -0700
                Re: THANKS EVERYBODY FOR THE INFO Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-06-07 18:07 +0100
                Re: THANKS EVERYBODY FOR THE INFO Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-06-08 04:03 -0700
                Re: THANKS EVERYBODY FOR THE INFO Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-11 08:12 -0700
            Re: THANKS EVERYBODY FOR THE INFO Keith Thompson <kst-u@mib.org> - 2015-06-07 08:01 -0700
          Re: counting bytes gordonb.3gcai@burditt.org (Gordon Burditt) - 2015-06-07 05:02 -0500
          Re: counting bytes David Brown <david.brown@hesbynett.no> - 2015-06-07 15:32 +0200
            Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-06-07 12:48 -0700
              Re: counting bytes David Brown <david.brown@hesbynett.no> - 2015-06-07 23:05 +0200
                Re: counting bytes Richard Heathfield <rjh@cpax.org.uk> - 2015-06-07 22:17 +0100
                Re: counting bytes David Brown <david.brown@hesbynett.no> - 2015-06-07 23:49 +0200
                Re: counting bytes Richard Heathfield <rjh@cpax.org.uk> - 2015-06-07 23:37 +0100
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-11 08:25 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-11 08:21 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-11 13:54 -0500
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-20 06:33 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-20 09:51 -0500
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-24 09:49 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-24 12:26 -0500
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-30 11:16 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-30 23:15 -0500
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-02 06:07 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-02 14:31 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-09 05:31 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-09 17:09 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-05 09:58 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-09-05 19:29 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-06 14:38 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-09-06 17:46 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-07 23:50 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-09-06 22:00 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-07 23:24 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-24 20:03 -0400
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-24 22:13 -0500
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-25 02:22 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-25 11:39 -0500
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-25 09:48 -0700
                Re: counting bytes Martin Shobe <martin.shobe@yahoo.com> - 2015-07-25 14:04 -0500
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-25 14:22 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-25 11:07 -0400
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-25 12:43 -0400
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-25 13:32 -0400
                Re: counting bytes glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-25 20:14 +0000
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-25 17:24 -0400
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-25 14:42 -0700
                Re: counting bytes glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-25 23:02 +0000
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-25 19:17 -0400
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-25 16:37 -0700
                Re: counting bytes glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-26 06:10 +0000
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-26 08:31 -0400
                Re: counting bytes Bartc <bc@freeuk.com> - 2015-07-30 21:32 +0100
                Re: counting bytes raltbos@xs4all.nl (Richard Bos) - 2015-07-31 13:25 +0000
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-31 11:31 -0400
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-31 11:30 -0700
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-31 14:29 -0400
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-31 12:14 -0700
                Re: counting bytes David Kleinecke <dkleinecke@gmail.com> - 2015-07-31 17:39 -0700
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-31 23:32 -0400
                Re: counting bytes David Kleinecke <dkleinecke@gmail.com> - 2015-08-01 16:41 -0700
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-08-01 20:23 -0400
                Re: counting bytes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-07-31 11:01 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-25 19:42 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-30 12:16 -0700
                Re: counting bytes Bartc <bc@freeuk.com> - 2015-07-30 22:04 +0100
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-02 06:10 -0700
                Re: counting bytes David Kleinecke <dkleinecke@gmail.com> - 2015-07-25 19:10 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-25 22:16 -0400
                Re: counting bytes David Kleinecke <dkleinecke@gmail.com> - 2015-07-25 19:46 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-30 11:52 -0700
                Re: counting bytes raltbos@xs4all.nl (Richard Bos) - 2015-07-31 08:51 +0000
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-02 06:19 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-01 09:39 -0400
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-08-01 13:06 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-01 20:43 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-02 06:52 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-02 15:14 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-09 07:54 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-08-09 16:43 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-05 10:48 -0700
                Re: counting bytes Richard Damon <Richard@Damon-Family.org> - 2015-07-11 17:50 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-20 06:36 -0700
                Re: counting bytes raltbos@xs4all.nl (Richard Bos) - 2015-07-20 15:14 +0000
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-24 09:38 -0700
                Re: counting bytes raltbos@xs4all.nl (Richard Bos) - 2015-07-25 19:12 +0000
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-30 12:18 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-11 17:03 -0700
                Re: counting bytes glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-12 00:15 +0000
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-11 17:42 -0700
                Re: counting bytes glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-12 02:46 +0000
                Re: counting bytes James Kuyper <jameskuyper@verizon.net> - 2015-07-12 12:33 -0400
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-20 06:48 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-20 11:18 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-24 09:58 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-24 11:14 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-07-30 11:02 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-07-30 13:10 -0700
                Re: counting bytes Tim Rentsch <txr@alumni.caltech.edu> - 2015-08-01 10:53 -0700
                Re: counting bytes Keith Thompson <kst-u@mib.org> - 2015-06-07 14:46 -0700
                Re: counting bytes David Brown <david.brown@hesbynett.no> - 2015-06-08 09:05 +0200
  Re: counting bytes Siri Cruz <chine.bleu@yahoo.com> - 2015-06-06 05:06 -0700
  Re: counting bytes bartekltg <bartekltg@gmail.com> - 2015-07-26 00:58 +0200
    Re: counting bytes bartekltg <bartekltg@gmail.com> - 2015-07-26 01:00 +0200

csiph-web