16-bit int
Göran Steen
goran.steen@eis.semcon.com
Fri Aug 10 08:53:00 GMT 2012
Thank you for your response.
Sorry, this will not help. I want to test the snippets, not change them. Besides, I don't know if the compiler that will be used for the 16-bit machine will support any of the types you suggest, so I only want to use standard types.
BR /göran
-----Original Message-----
From: David Brown [mailto:david@westcontrol.com]
Sent: den 10 augusti 2012 10:12
To: Göran Steen
Cc: gcc-help@gcc.gnu.org
Subject: Re: 16-bit int
On 10/08/2012 09:15, Göran Steen wrote:
> Thank you for your response.
>
> I want to make sure that my code snippets, if they are compiled and
> run on a machine with 16-bit int, still works. I don't have access to
> such a machine, so I want to compile and run them with 16-bit int on
> my machine that defaults to 32-bit int. Especially the intermediate
> results' size are interesting. What happens if they are truncated to
> 16-bit?
>
The answer here is simple - #include <stdint.h>, and use types like int_fast16_t. If intermediary results might need 32 bits, cast to int_fast32_t as needed. On a target with 32-bit ints, both these types will normally be 32-bit (though int_fast16_t could theoretically be 16-bit), and the cast will do nothing. On a target with 16-bit ints, you will get 16-bit and 32-bit ints respectively.
This will give you optimal code for all sizes of target ints, while also being correct on each target.
mvh.,
David
> There will not be any problem with library compatibility.
>
> BR /göran
>
> -----Original Message----- From: David Brown
> [mailto:david@westcontrol.com] Sent: den 9 augusti 2012 15:37 To:
> Göran Steen Cc: gcc-help@gcc.gnu.org Subject: Re: 16-bit int
>
> On 09/08/2012 13:26, Göran Steen wrote:
>> Hi!
>>
>> I use gcc version 4.3.4, where int is 32-bit variables. Is it
>> possible to setup compiler to compile int as 16-bit variables?
>>
>> With best regards / Med vänlig hälsning / Mit freundlichen Grüßen /
>> Saudações
>>
>> Göran Steen
>
>
> The size of an int depends on the target - gcc supports dozens of
> targets. Most have 32-bit ints, but some have 16-bit ints and at
> least one has a compile-time option to support 8-bit ints (though that
> goes against C standards, and is deprecated on current builds).
> There are probably also targets with 64-bit ints.
>
> So step one in asking for help here is to tell us your target.
>
> Step two is to tell us what you are hoping to achieve. Almost
> certainly, there is no way to change the int size - and even if there
> happens to be a command-line switch for the given target, it is
> probably not a good idea (you'll get in a horrible mess with library
> compatibility, for example). And even if it is possible, it is highly
> unlikely to be advantageous. Tell us what you really want to achieve
> here, and people can give you advice towards that.
>
> mvh.,
>
> David
>
More information about the Gcc-help
mailing list