From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8c8bbb1419c8e81a X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Waiver question Date: 1997/04/29 Message-ID: #1/1 X-Deja-AN: 238148019 References: <33585385.C8D@lmtas.lmco.com> <1997Apr28.151327.1@eisner> Organization: New York University Newsgroups: comp.lang.ada Date: 1997-04-29T00:00:00+00:00 List-Id: Corey said <> Of course there is no requirement in C that you put a char in a single 32-bit word, you could perfectly well use a more compact representenation, with a special form for the (char *) pointer (I believe the Cray C does this -- rather than putting chars in 64 bits). Of course it is simpler to put one character/32 bits, and if you make this choice, (which is what I believe the 1750-A port for GNAT does, one character per 16 bits), then things are relatively simple. type String in Ada is packed, which means for example that you cannot meaningfully get the address of individual elements in the string in any case and remain portable (i.e. 'Address of two successive characters in a string may well be the same). So it would be attractive to pack characters if you did a C30 GNAT port, even if the C compiler did not, and it would fall out free, since this kind of packing is done by the front end anyway in GNAT.