question: size of C# primitive data types according to ECMA standard

N

Neil Zanella

Hello all,

In C and C++ a primitive data type is represented by a minimum number
of bits as defined by the corresponding standard. For instance an int
is assumed to be at least 16 bits on all platform where in practice
an int is 16 bits on the arcane 16 bit machines and 32 bits on the
most commonly used 32 bit machines.

However, my C# reference says that an int in C# is always 32 bits wide.
It also specifies a specific number of bits for all the other primitive
data types, namely bool, char, sbyte, byte, short, ushort, int, uint,
long, ulong, float, double, and decimal, where some of the corresponding
data types in C and C++ have minimum values but no fixed values. However
I have seen some C and C++ manuals make wrong claims about the width of
C and C++ data types as well.

So, I was just wondering whether anyone could please confirm whether the
C# standard defines fixed values for all primitives or whether this is
not so.

Thanks,

Neil
 
D

Daniel O'Connell [C# MVP]

Neil Zanella said:
Hello all,

In C and C++ a primitive data type is represented by a minimum number
of bits as defined by the corresponding standard. For instance an int
is assumed to be at least 16 bits on all platform where in practice
an int is 16 bits on the arcane 16 bit machines and 32 bits on the
most commonly used 32 bit machines.

However, my C# reference says that an int in C# is always 32 bits wide.
It also specifies a specific number of bits for all the other primitive
data types, namely bool, char, sbyte, byte, short, ushort, int, uint,
long, ulong, float, double, and decimal, where some of the corresponding
data types in C and C++ have minimum values but no fixed values. However
I have seen some C and C++ manuals make wrong claims about the width of
C and C++ data types as well.

So, I was just wondering whether anyone could please confirm whether the
C# standard defines fixed values for all primitives or whether this is
not so.

Yes, the specification defines a specific size for the various primatives.

http://www.jaggersoft.com/csharp_standard/11.1.4.htm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top