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@xxxxxxxxxxxxxxx] Sent: den 10 augusti 2012 10:12 To: Göran Steen Cc: gcc-help@xxxxxxxxxxx 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@xxxxxxxxxxxxxxx] Sent: den 9 augusti 2012 15:37 To: > Göran Steen Cc: gcc-help@xxxxxxxxxxx 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 >