The relevant sections of the C standard are http://c0x.coding-guidelines.com/5.2.4.2.1.html, which specifies that C ints are only guaranteed to be 16 bits, C long ints at least 32 bits in size, as Peter mentioned. Also http://c0x.coding-guidelines.com/6.4.4.1.html specifies l or L as the suffix for a long int constants.
However R does define integers as `int` in it's source code, so use of L is not strictly correct if a compiler uses 16 bit int types. I guess this ambiguity is why the `int32_t` typedef exists. On Fri, Jun 16, 2017 at 3:01 PM, William Dunlap via R-devel < r-devel@r-project.org> wrote: > "Writing R Extensions" says "int": > > R storage mode C type FORTRAN type > logical int* INTEGER > integer int* INTEGER > double double* DOUBLE PRECISION > complex Rcomplex* DOUBLE COMPLEX > character char** CHARACTER*255 > raw unsigned char* none > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Fri, Jun 16, 2017 at 11:53 AM, peter dalgaard <pda...@gmail.com> wrote: > > > > Wikipedia claims that C ints are still only guaranteed to be at least 16 > bits, and longs are at least 32 bits. So no, R's integers are long. > > > > -pd > > > > > On 16 Jun 2017, at 20:20 , William Dunlap via R-devel < > r-devel@r-project.org> wrote: > > > > > > But R "integers" are C "ints", as opposed to S "integers", which are C > > > "long ints". (I suppose R never had to run on ancient hardware with 16 > bit > > > ints.) > > > > > > Bill Dunlap > > > TIBCO Software > > > wdunlap tibco.com > > > > > > On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xie <x...@yihui.name> wrote: > > > > > >> Yeah, that was what I heard from our instructor when I was a graduate > > >> student: L stands for Long (integer). > > >> > > >> Regards, > > >> Yihui > > >> -- > > >> https://yihui.name > > >> > > >> > > >> On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol < > so...@insa-toulouse.fr > > > > >> wrote: > > >>> Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : > > >>>> > > >>>> I'm just curious (no complaints), what was the reason for choosing > the > > >>>> letter 'L' as a suffix for integer constants? Does it stand for > > >>>> something (literal?), is it because it visually stands out, ..., or > no > > >>>> specific reason at all? > > >>> > > >>> My guess is that it is inherited form C "long integer" type (contrary > to > > >>> "short integer" or simply "integer") > > >>> https://en.wikipedia.org/wiki/C_data_types > > >> > > >> ______________________________________________ > > >> R-devel@r-project.org mailing list > > >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > R-devel@r-project.org mailing list > > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > -- > > Peter Dalgaard, Professor, > > Center for Statistics, Copenhagen Business School > > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > > Phone: (+45)38153501 > > Office: A 4.23 > > Email: pd....@cbs.dk Priv: pda...@gmail.com > > > > > > > > > > > > > > > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel