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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,4873305131bf4d94 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,4873305131bf4d94 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,4873305131bf4d94 X-Google-Attributes: gid103376,public From: "Shmuel (Seymour J.) Metz" Subject: Re: Porting Experiences (was Ada and Pascal etc ) Date: 1997/11/04 Message-ID: <345F9728.D61@gsg.eds.com>#1/1 X-Deja-AN: 287094196 References: <345E3ACD.A15@gsg.eds.com> <878648818snz@genesis.demon.co.uk> Organization: EDS MS Reply-To: nospam@gsg.eds.com Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++ Date: 1997-11-04T00:00:00+00:00 List-Id: Lawrence Kirby wrote: > > The portability implications of this are small or non-existent (there may > be performace implications in rare circumstances, and issues relating to > data sizes and external data formats). As ever the C language is designed > with the assumption that the programmer knows what he is doing. The use > of ranges implies that you know beforehand what those ranges will be. > In C you follow a set of rules: > > 1. If the range is contained within -32767 to 32767 then you use int > > 2. If the range is contained within -2147483647 to 2147483647 then you > use long. > > 3. If you want to minimise space usage (such as for array elements or > structure members) and the range is contained within -32767 to 32767 then > you can use short. For -127 to 127 you can use signed char. > > 4. The unsigned types have larger positive ranges if your range is > non-negative. Notably unsigned char typically corresponds to the > notion of "byte" in most languages. Those rules only apply if you are going from one 32-bit machine to another; they have nothing to do with the definition of C itself and are inapplicable when you have to move between different word sizes. The C standard makes the size of an int implimentation dependent, and on 16-bit machines it is normally 16. On 64-bit machines int is usually 64, and if you want 32 you specify short. Now, admittedly this will change with the new standard, but as long as it is still a draft it has nothing to do with the current language. -- Shmuel (Seymour J.) Metz Senior Software SE The values in from and reply-to are for the benefit of spammers: reply to domain eds.com, user msustys1.smetz or to domain gsg.eds.com, user smetz. Do not reply to spamtrap@library.lspace.org