diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-E525E177-1FE5-5845-9BF8-B76D434B838D.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-E525E177-1FE5-5845-9BF8-B76D434B838D.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,37 @@ + + + + + +Integral +typesThis document describes the integer data types. +

TInt is the natural machine word integer and should +be used in all general contexts where integer arithmetic is desired.

+

TInt32, TInt16, and TInt8 map +onto C++ built-in types in most implementations. These types should only be +used where the size of the integer is of first importance: sometimes, this +is relevant for C++ arrays and struct/class members. Note that C++ passes +all function arguments as TInt, so there is nothing to +be gained by using narrower types in function interfaces.

+

TUint is an unsigned integer of the natural machine +word size. Experience with C and C++ suggests that unsigned integers are not +suitable for representing quantities whose valid values should always be positive. TInt should +be used in these circumstances instead. The main reasons behind this surprising +assertion are, firstly, that surprises occur when C++ performs implicit type +conversions for arithmetic and assignment, and, secondly, that C++ does not +trap bounds errors, with the result that TUint s which +"accidentally" go negative actually take on very large positive values instead.

+

TUint should be used for flag and handle words, which +are manipulated using bitwise and equality-comparison operations rather than +arithmetic. TUint should also be used in exceptional circumstances +where the full range of a machine word is required for arithmetic: this use +is exceptional and must always be carefully controlled.

+

TUint32, TUint16, and TUint8 types +are available where the specific representation width is important.

+
\ No newline at end of file