On 11 Apr 2007 07:13:40 -0700, Knowledge Seeker <[EMAIL PROTECTED]>
wrote:
>
> sizeof int is platform dependent and varies from platform to platform.
> while sizeof long is always 32-bit


Erm no.  An int must, implicitly, be at least 16 bits and a long must be at
least 32 bits. In addition a long must be at least as long(!) as an int (i.e.
an int may be shorter, but cannot be longer, than a long.)

It would be quite valid for both to be 36 bits long on a platform.

To the OP, this means that a signed int must hold any number from -32767 to
32767 (unsigned should hold 0-65535,) but may extend these limits. A signed
long must hold a number from -2147483647 to 2147483647 (unsigned should hold
0-4294967295; but again, on a platform it may extend this.)

If the data you're handling will fit in the +/-32767 | 0-65535 range, use an
int, otherwise use a long. That is the only criteria you need concern
yourself with when choosing which to use.

A platform is not specifically an OS, it is the 'host' environment. A
> 32-bit OS, with an old C compiler may carry int to be of size 16.
>
> Now you can figure out what to use where.
>
>
> Depends on the scenario where to use what ... if you need yashpal_ait21
> wrote:
> > Hi C-programmers,
> >       Can you please clarify this doubt to me related with 'int'
> > and 'long' data type in C++? When should a programmer use 'int' and
> > when should he use 'long'? What is the need of datatype 'long',
> > when 'int' & 'long' are both 32-bit quantities on a 32-bit OS ?
> >
> > Regards,
> > Yashpal
> >
> >
> >
>
>
>
> To unsubscribe, send a blank message to <mailto:
> [EMAIL PROTECTED]>.
> Yahoo! Groups Links
>
>
>
>


-- 
PJH
Aio, quantitas magna frumentorum est


[Non-text portions of this message have been removed]

Reply via email to