Listing 7: native.cc.

#include <stdio.h>
#include "native.h"
double * initPi()
{ 
  printf( "initPi\n");
  static double Pi = 3.141593;
  return &Pi;
}
// modul global variable with static initialization
double * Pi = initPi();
// implementation of C++ function
double calcEllipse( EllipseData input)
{ return (*Pi) * input.r1 * input.r2; }
// implementation of C function
extern "C" double calcCircle( double radius)
{ return (*Pi) * radius * radius;}