[Numpy-discussion] int16 or int32 for C int ?
Nicolas Pernetty
nicopernetty at yahoo.fr
Mon Jun 27 16:48:15 EDT 2005
On Mon, 27 Jun 2005 06:16:33 -0400, Todd Miller <jmiller at stsci.edu>
wrote :
> > > > I would like to create a numarray array from a C buffer of 'int'
> > > > but I don't quite know how to handle different 'int'
> > > > representation (16 or 32 bits).
> > >
> > > On the platforms we test on at least, int == Int32. This is even
> > > true for the 64-bit platforms I've seen.
> > >
> > > > For instante should I use :
> > > >
> > > > int a[10][20];
> > > > x = NA_NewArray(a, tInt16, 2, 10, 20);
> > > >
> > > > or :
> > > > int a[10][20];
> > > > x = NA_NewArray(a, tInt32, 2, 10, 20);
> > > >
> > > > Should I use some macro to determine size of int ?
> > >
> > > You can do that with: sizeof(int)
> > >
> >
> > Ok so If I want to make a really multiplatforms program, I should
> > type :
> >
> > int a[10][20];
> > if (sizeof(**a)==4)
> > x = NA_NewArray(a, tInt32, 2, 10, 20);
> > else
> > x = NA_NewArray(a, tInt16, 2, 10, 20);
> >
> > This is the recommended way ?
>
> I think this would be better:
>
> Int32 a[10][20];
>
> x = NA_NewArray(a, tInt32, 2, 10, 20);
>
> Or, just do:
>
> x = NA_NewArray(NULL, tInt32, 2, 10, 20)
>
> and numarray will allocate the array storage which is then pointed to
> by x->data.
>
Ok but in my particular case I can't : I have to deal with legacy code
which use 'int' so I'm stuck with the sizeof trick...
Thanks anyway !
More information about the NumPy-Discussion
mailing list