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


Groups > comp.lang.c > #24218

Re: The C Containers Library

From Ike Naar <ike@faeroes.freeshell.org>
Newsgroups comp.lang.c
Subject Re: The C Containers Library
Date 2012-08-04 19:17 +0000
Organization A noiseless patient Spider
Message-ID <slrn3vfsk1qtag.pae.ike@faeroes.freeshell.org> (permalink)
References <4FF9E523.6000006@spamsink.net> <b230eaf2-b8da-4f8f-a32d-dfc6539a931d@googlegroups.com> <jvjjee$9pg$1@speranza.aioe.org>

Show all headers | View raw


On 2012-08-04, jacob navia <jacob@spamsink.net> wrote:
> Le 04/08/12 13:52, SG a ?crit :
>> Am Sonntag, 8. Juli 2012 21:53:07 UTC+2 schrieb jacob navia:
>>> [...]
>>> "The C Containers Library"
>>> [...]
>>
>> I just skimmed the PDF and noticed this on page 42:
>>
>>     int function(void)
>>     {
>>        char listSpace[iList.Sizeof(NULL)];
>>        iList.Init(listSpace);
>>     }
>>
>> I think this qualifies as an alignment issue.
>>
>
> Yes. I have added a paragraph after that code:
>
> Problems with the above construct could arise because of the alignment 
> requirements of the platform
> where the library is running. Instead of a char as the type
> of the buffer, it is better to use a slightly more complicated 
> expression to ensure correct alignment. For instance:
>
>      size_t s = (sizeof(void *)+iList.Sizeof(NULL))/sizeof(void *);
>      void *listSpace[s];

It looks like the formula

    (sizeof(void *)+iList.Sizeof(NULL)) / sizeof(void *);

wastes sizeof(void*) bytes if iList.Sizeof(NULL) is a multiple of
sizeof(void*). I think the intention of the formula is to compute
iList.Sizeof(NULL) rounded upward to the next multiple of sizeof(void*),
and if that is the case,

    (sizeof(void*) - 1 + iList.Sizeof(NULL)) / sizeof(void*);

would suffice.

A slightly more serious issue is that this only fixes the alignment
problem if it is guaranteed that the alignment requirements for a
header structure are not stricter than the alignment requirements
of a void*.

If the type of the header structure were known to the program,
there would be a simpler solution:

  /* assuming the type of header structure is HEADER_STRUCTURE_TYPE */
  HEADER_STRUCTURE_TYPE headerspace;
  iList.Init(headerspace);

which would have the additional advantage that it doesn't use a
variable length array, so it would work with a pre-C99 compiler.

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


Thread

The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-08 21:53 +0200
  Re: The C Containers Library aftnix <aftnix@gmail.com> - 2012-07-26 13:13 -0700
    Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-26 22:31 +0200
      Re: The C Containers Library lawrence.jones@siemens.com - 2012-07-28 17:46 -0400
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 02:05 +0200
          Re: The C Containers Library lawrence.jones@siemens.com - 2012-07-30 14:48 -0400
          Re: The C Containers Library Phil Bradby <nospam@nospam.com> - 2012-08-01 21:00 +0000
            Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-01 23:18 +0200
            Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-08-02 00:48 -0700
              Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-08-02 07:00 -0400
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-02 13:27 +0200
                Re: The C Containers Library Quentin Pope <qp19433@hotmail.NOSPAM.com> - 2012-08-02 20:27 +0000
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-08-02 05:13 -0700
                Re: The C Containers Library Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-08-02 14:26 -0700
                Re: The C Containers Library Kenneth Brody <kenbrody@spamcop.net> - 2012-08-03 10:47 -0400
        Re: The C Containers Library Noob <root@localhost> - 2012-07-29 09:58 +0200
          Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-30 00:31 -0600
            Re: The C Containers Library Noob <root@localhost> - 2012-07-30 09:45 +0200
              Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 02:10 -0700
          Re: The C Containers Library lawrence.jones@siemens.com - 2012-07-30 14:54 -0400
    Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-07-26 16:52 -0400
      Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-26 22:56 +0200
        Re: The C Containers Library pacman@kosh.dhis.org (Alan Curry) - 2012-07-26 22:29 +0000
          Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-27 01:50 +0200
            Re: The C Containers Library pacman@kosh.dhis.org (Alan Curry) - 2012-07-27 22:28 +0000
          Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-29 06:31 -0700
            Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-30 00:26 -0600
              Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 02:21 -0700
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-02 02:27 -0600
                Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-08-02 16:43 +0100
                Re: The C Containers Library Ansel <lateknightdev@gmail.com> - 2012-08-02 17:07 -0700
                Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-08-03 22:21 +0100
                Re: The C Containers Library Ansel <lateknightdev@gmail.com> - 2012-08-03 15:43 -0700
                Re: The C Containers Library Anders Wegge Keller <wegge@wegge.dk> - 2012-08-04 06:32 +0200
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-08-04 01:52 -0700
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-04 22:36 -0600
                Re: The C Containers Library Anders Wegge Keller <wegge@wegge.dk> - 2012-08-05 08:36 +0200
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-05 01:28 -0600
                Re: The C Containers Library Anders Wegge Keller <wegge@wegge.dk> - 2012-08-05 11:31 +0200
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-05 03:48 -0600
            Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-08-04 03:41 -0700
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-27 01:55 +0200
  Re: The C Containers Library wkaras@yahoo.com - 2012-07-26 13:45 -0700
    Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-26 22:53 +0200
      Re: The C Containers Library wkaras@yahoo.com - 2012-07-26 18:46 -0700
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-27 10:59 +0200
          Re: The C Containers Library gwowen <gwowen@gmail.com> - 2012-07-27 03:39 -0700
          Re: The C Containers Library wkaras@yahoo.com - 2012-07-27 11:34 -0700
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-27 11:04 +0200
          Re: The C Containers Library W Karas <wkaras@yahoo.com> - 2012-07-27 13:10 -0700
  Re: The C Containers Library wkaras@yahoo.com - 2012-07-26 18:54 -0700
    Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-07-27 10:25 -0400
      Re: The C Containers Library wkaras@yahoo.com - 2012-07-27 11:28 -0700
        Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-07-27 15:17 -0400
          Re: The C Containers Library wkaras@yahoo.com - 2012-07-27 13:00 -0700
          Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 02:02 +0200
            Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-28 22:08 -0600
              Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 08:46 +0200
                Re: The C Containers Library pacman@kosh.dhis.org (Alan Curry) - 2012-07-29 07:43 +0000
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 09:59 +0200
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-29 06:43 -0700
                Re: The C Containers Library pacman@kosh.dhis.org (Alan Curry) - 2012-07-29 17:27 +0000
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 20:56 +0200
                Re: The C Containers Library pacman@kosh.dhis.org (Alan Curry) - 2012-07-30 00:07 +0000
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-30 00:07 -0600
                Re: The C Containers Library Keith Thompson <kst-u@mib.org> - 2012-07-29 11:58 -0700
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 22:06 +0200
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-29 22:23 +0200
                Re: The C Containers Library Melzzzzz <mel@zzzzz.invalid> - 2012-07-30 00:13 +0200
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-30 00:13 -0600
                Re: The C Containers Library Keith Thompson <kst-u@mib.org> - 2012-07-30 01:10 -0700
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-30 02:57 -0600
                Re: The C Containers Library Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-07-30 15:47 +0000
                Re: The C Containers Library Keith Thompson <kst-u@mib.org> - 2012-07-30 13:01 -0700
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 04:53 -0700
                Re: The C Containers Library Keith Thompson <kst-u@mib.org> - 2012-07-30 13:04 -0700
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-02 02:11 -0600
                Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-08-02 06:52 -0400
                Re: The C Containers Library James Kuyper <jameskuyper@verizon.net> - 2012-08-02 06:46 -0400
                Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-07-30 00:41 +0100
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-30 09:45 +0200
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-29 23:05 -0600
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-07-29 22:52 -0600
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 04:56 -0700
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-02 02:07 -0600
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-30 17:49 +0200
        Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-07-28 09:17 +0100
          Re: The C Containers Library W Karas <wkaras@yahoo.com> - 2012-07-28 15:17 -0700
            Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-07-29 11:10 +0100
        Re: The C Containers Library Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-28 06:51 -0700
          Re: The C Containers Library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-28 17:23 +0100
            Re: The C Containers Library Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-30 13:40 -0700
              Re: The C Containers Library Melzzzzz <mel@zzzzz.invalid> - 2012-07-31 00:24 +0200
          Re: The C Containers Library Melzzzzz <mel@zzzzz.invalid> - 2012-07-31 00:05 +0200
          Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-07-31 00:53 +0100
            Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-07-31 09:24 +0200
            Re: The C Containers Library Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-08-02 14:45 -0700
              Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-08-03 22:31 +0100
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-04 00:01 +0200
                Re: The C Containers Library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-08-03 23:45 +0100
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-04 22:47 -0600
                Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-04 22:41 -0600
                Re: The C Containers Library Rui Maciel <rui.maciel@gmail.com> - 2012-08-07 10:24 +0100
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-07 15:30 +0200
                Re: The C Containers Library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-08-07 15:35 +0100
                Re: The C Containers Library Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 12:40 -0700
                Re: The C Containers Library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-08 00:07 +0100
                Re: The C Containers Library Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 17:31 -0700
                Re: The C Containers Library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-08 03:14 +0100
                Re: The C Containers Library Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-08 05:22 -0700
                Re: The C Containers Library Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 12:36 -0700
                Re: The C Containers Library Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-08-08 02:26 -0700
                Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-08 17:25 +0200
            Re: The C Containers Library 88888 Dihedral <dihedral88888@googlemail.com> - 2012-08-03 16:04 -0700
  Re: The C Containers Library SG <s.gesemann@gmail.com> - 2012-08-04 04:52 -0700
    Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-04 18:42 +0200
      Re: The C Containers Library Ike Naar <ike@faeroes.freeshell.org> - 2012-08-04 19:17 +0000
        Re: The C Containers Library Ike Naar <ike@faeroes.freeshell.org> - 2012-08-04 19:22 +0000
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-04 22:14 +0200
        Re: The C Containers Library jacob navia <jacob@spamsink.net> - 2012-08-05 00:15 +0200
          Re: The C Containers Library Ike Naar <ike@faeroes.freeshell.org> - 2012-08-04 23:13 +0000
            Re: The C Containers Library "Ansel" <tinker454@trytospammenowloser.com> - 2012-08-04 22:53 -0600

csiph-web