Listing 2: PrintInCImp.c: C functions for Java class


#include <stdio.h>
#include <StubPreamble.h>
#include "PrintInC.h"

/*** Java to C demo: Print data values ***/
long PrintInC_doPrint(struct HPrintInC *this,
                      int64_t l,
                      HArrayOfInt *ai, long iCount,
                      double d,
                      struct Hjava_lang_String *s)
{
   int charsPrinted=0, idx=0;
   long *i;

   /* Print value of "long" (Java int) */
   charsPrinted += printf("C: l = %ld\n", l);

   /* Print array of longs */
   i = unhand(ai)->body;
   for (idx=0; idx < iCount; idx++)
      charsPrinted += printf("C: i[%d] = %d\n", idx, i[idx]);

   /* Print value of "double */
   charsPrinted += printf("C: d = %f\n", d);

   /* Print Java string */
   charsPrinted += printf("C: s = %s\n", makeCString(s));

   /* Return total characters printed */
   return charsPrinted;
}
// End of file