Back to index

python3.2  3.2.2
Functions
float.c File Reference
#include "ffitest.h"

Go to the source code of this file.

Functions

static int floating (int a, float b, double c, long double d)
int main (void)

Function Documentation

static int floating ( int  a,
float  b,
double  c,
long double  d 
) [static]

Definition at line 11 of file float.c.

{
  int i;

  i = (int) ((float)a/b + ((float)c/(float)d));

  return i;
}

Here is the caller graph for this function:

int main ( void  )

Definition at line 20 of file float.c.

{
  ffi_cif cif;
  ffi_type *args[MAX_ARGS];
  void *values[MAX_ARGS];
  ffi_arg rint;

  float f;
  signed int si1;
  double d;
  long double ld;

  args[0] = &ffi_type_sint;
  values[0] = &si1;
  args[1] = &ffi_type_float;
  values[1] = &f;
  args[2] = &ffi_type_double;
  values[2] = &d;
  args[3] = &ffi_type_longdouble;
  values[3] = &ld;

  /* Initialize the cif */
  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
                   &ffi_type_sint, args) == FFI_OK);

  si1 = 6;
  f = 3.14159;
  d = (double)1.0/(double)3.0;
  ld = 2.71828182846L;

  floating (si1, f, d, ld);

  ffi_call(&cif, FFI_FN(floating), &rint, values);

  printf ("%d vs %d\n", (int)rint, floating (si1, f, d, ld));

  CHECK((int)rint == floating(si1, f, d, ld));

  exit (0);
}

Here is the call graph for this function: