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


Groups > comp.lang.c > #10411

Re: datatype for bit flags

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c, comp.lang.c++
Subject Re: datatype for bit flags
Date 2011-09-17 14:42 -0700
Organization None to speak of
Message-ID <lnlitm7snj.fsf@nuthaus.mib.org> (permalink)
References (2 earlier) <930e767b-26f0-4123-836d-64dac1f47cfb@d2g2000vbk.googlegroups.com> <EtPcq.16451$9w.7154@newsfe18.iad> <4E73CF44.619F@mindspring.com> <lny5xo6pes.fsf@nuthaus.mib.org> <4E743FAD.3203@mindspring.com>

Cross-posted to 2 groups.

Show all headers | View raw


pete <pfiland@mindspring.com> writes:
> Keith Thompson wrote:
>> pete <pfiland@mindspring.com> writes:
>> > Tony wrote:
>> >>
>> >> Malcolm McLean wrote:
>> >>
>> >> > You should use int for an
>> >> > integer unless there is a
>> >> > clear reason for using another type. Though
>> >> > each instance will only save a few cycles,
>> >> > if you systematically use
>> >> > int the speed increment may be worth having.
>> >>
>> >> Did you mean that just in the context of the OP/this thread, or in
>> >> general?
>> >
>> > I only use data types which are smaller than int,
>> > when there is a special reason.
>> >
>> > It's possible that small types may be aligned on int boundaries,
>> > meaning that there may be unusable bytes in between them.
>> 
>> No, it's not.  In an array of char, or an array of short, the elements
>> must be contiguous; unlike structs arrays have no padding.
>> This is necessary
>> to make array indexing and pointer arithmetic work.
>
> It's possible that small types may exist outside of an array.

Of course.

In a struct, there can be arbitrary padding between any two members, or
after the last member.  But in practice, I'd be very surprised to see
any padding between c0 and c1 in
    struct {
        char c0;
        char c1;
    };

As for individually declared objects, you're not likely to have
very many of them, so any padding between them should have only
minimal effect (and if it's there, it probably saves you more in code
space than it costs in data space).

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

datatype for bit flags Gr <g@g.com> - 2011-09-15 12:37 +0530
  Re: datatype for bit flags jacob navia <jacob@spamsink.net> - 2011-09-15 09:26 +0200
    Re: datatype for bit flags Gr <g@g.com> - 2011-09-15 13:33 +0530
      Re: datatype for bit flags jacob navia <jacob@spamsink.net> - 2011-09-15 10:12 +0200
  Re: datatype for bit flags Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-09-15 01:06 -0700
  Re: datatype for bit flags "BartC" <bc@freeuk.com> - 2011-09-15 10:56 +0100
    Re: datatype for bit flags Gr <g@g.com> - 2011-09-15 17:24 +0530
  Re: datatype for bit flags Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-09-16 01:16 +0300
    Re: datatype for bit flags Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-09-16 04:59 -0700
      Re: datatype for bit flags Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-09-16 20:46 +0000
        Re: datatype for bit flags pete <pfiland@mindspring.com> - 2011-09-16 18:00 -0400
        Re: datatype for bit flags Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-09-18 05:00 -0700
          Re: datatype for bit flags Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-09-18 13:36 +0000
      Re: datatype for bit flags "Tony" <nospamme@ever.net> - 2011-09-16 16:47 -0500
        Re: datatype for bit flags pete <pfiland@mindspring.com> - 2011-09-16 18:35 -0400
          Re: datatype for bit flags Keith Thompson <kst-u@mib.org> - 2011-09-16 16:25 -0700
            Re: datatype for bit flags pete <pfiland@mindspring.com> - 2011-09-17 02:35 -0400
              Re: datatype for bit flags Keith Thompson <kst-u@mib.org> - 2011-09-17 14:42 -0700
          Re: datatype for bit flags "Tony" <nospamme@ever.net> - 2011-09-16 19:27 -0500
  Re: datatype for bit flags hanukas <jukka@liimatta.org> - 2011-09-23 03:56 -0700

csiph-web