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


Groups > comp.lang.c > #10211

Re: C Macro define contain symbol #

From Richard Damon <news.x.richarddamon@xoxy.net>
Newsgroups comp.lang.c
Subject Re: C Macro define contain symbol #
Date 2011-09-13 22:51 -0400
Organization A noiseless patient Spider
Message-ID <j4p4ri$u8a$1@dont-email.me> (permalink)
References <c351b443-5581-4db0-8760-3f117eebce77@x32g2000prf.googlegroups.com><j4ngch$oqb$1@dont-email.me><92iu67h2ki8sgm1u9bvpfk8qu3hfremcoo@4ax.com> <lnbouob9av.fsf@nuthaus.mib.org> <j4oqet$8pk$1@dont-email.me>

Show all headers | View raw


On 9/13/11 7:52 PM, BartC wrote:
>
> Suppose *all* addresses have to be word-aligned (which used to be quite
> common). Then you'd have the same problem with:
>
> struct foo {
> char c[2];
> int i;
> };
>
> and trying to take the address of c[1] (or even just trying to access
> it). (This assumes you don't just make char and int the same size.)
>
> The Pascal 'packed' directive perhaps *was* an instructive to pack
> things more tightly than hardware considerations would normally dictate.
>

If you can only take address of word aligned objects then the compiler 
can either make char the size of a word, even if this is more that the 
"expected" 8 bits, or it can make a char* (and void*) pointer bigger by 
adding an extra word to it that tells it which "byte" within the word to 
access and adds code to all char accesses to use that extra information. 
I have seen both done on systems I have programed for, and both can trip 
up people who are used to "normal systems", and who assume CHAR_BIT = 8 
and sizeof(int*) == sizeof(char*)

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


Thread

C Macro define contain symbol # Wang WolfLouis <wolflouiswang@gmail.com> - 2011-09-13 02:47 -0700
  Re: C Macro define contain symbol # Noob <root@127.0.0.1> - 2011-09-13 13:14 +0200
  Re: C Macro define contain symbol # Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-13 07:55 -0400
    Re: C Macro define contain symbol # Roberto Waltman <usenet@rwaltman.com> - 2011-09-13 08:24 -0400
      Re: C Macro define contain symbol # Keith Thompson <kst-u@mib.org> - 2011-09-13 11:12 -0700
        Re: C Macro define contain symbol # Keith Thompson <kst-u@mib.org> - 2011-09-13 20:19 -0700
          Re: C Macro define contain symbol # Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-09-16 00:43 +0300
            Re: C Macro define contain symbol # Keith Thompson <kst-u@mib.org> - 2011-09-15 18:34 -0700
        Re: C Macro define contain symbol # Richard Damon <news.x.richarddamon@xoxy.net> - 2011-09-13 22:51 -0400
          Re: C Macro define contain symbol # Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-09-14 12:16 +0100
      Re: C Macro define contain symbol # tom st denis <tom@iahu.ca> - 2011-09-13 11:20 -0700
      Re: C Macro define contain symbol # Ian Collins <ian-news@hotmail.com> - 2011-09-14 07:55 +1200
      Re: C Macro define contain symbol # Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-14 07:58 -0400
        Re: C Macro define contain symbol # Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-09-14 14:54 +0000
      Re: C Macro define contain symbol # Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-09-16 00:34 +0300
        Re: C Macro define contain symbol # Nobody <nobody@nowhere.com> - 2011-09-16 12:07 +0100
    Re: C Macro define contain symbol # "BartC" <bc@freeuk.com> - 2011-09-13 13:50 +0100
      Re: C Macro define contain symbol # James Kuyper <jameskuyper@verizon.net> - 2011-09-13 08:59 -0400
        Re: C Macro define contain symbol # Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-09-14 15:02 +0000
  Re: C Macro define contain symbol # Kenneth Brody <kenbrody@spamcop.net> - 2011-09-13 16:54 -0400

csiph-web