Cuando escriba esta práctica haga uso de P5NCI o de  Inline 
para la construcción de las funciones numéricas 
con prototipos simples que aparezcan durante la construcción del módulo.
Basta con que considere la función del cálculo del máximo común divisor.
Si se siente realmente fuerte y capacitado puede leer
la sección como retornar múltiples valores del Inline::C Cookbok
para ver como implantar la suma y el producto de fracciones.
Este es un ejemplo de como hacerlo: Se deben empujar - usando Inline_Stack_Push - en la pila del intérprete Perl los valores de retorno:
void add_c(int n1, int d1, int n2, int d2) {
  n1 = n1*d2 + n2*d1;
  d1 = d1*d2;
  Inline_Stack_Vars;
  Inline_Stack_Reset;
  Inline_Stack_Push(sv_2mortal(newSViv(n1)));
  Inline_Stack_Push(sv_2mortal(newSViv(d1)));
}
La función  Inline_Stack_Vars  define un conjunto de variables internas que son necesarias para
poder acceder a la pila del intérprete Perl. 
En general, cuando la función sea de tipo void como es el caso del ejemplo,
se deben usar las macros con nombre  Inline_Stack_ . También si la función
tiene un número variable de argumentos (uso de la elípsis ...).
Antes de comenzar a empujar items en la pila se debe llamar a la función Inline_Stack_Reset . Inicializa el puntero de pila interno al comienzo de la pila.
A partir del númerador n1 = n1*d2 + n2*d1 debemos construir 
el escalar Perl que guarda el número. La función
 newSViv  es la que lo permite. 
La notación newSViv
significa new Scalar 
Value from an Integer Value.
El valor retornado por esta función es la estructura de datos que representa
un valor escalar Perl, conocido en la jerga como  SV  (véase perlguts).
Existe una familia de constructores de valores escalares 
SV a partir de diferentes tipos de fuentes:
newSVuv  para enteros sin signo,  newSVnv  para doubles, 
etc. (véase perlapi).
Como sabemos el recolector de basura de Perl usa un contador de 
referencias para saber que valores están en desuso y liberar la
memoria correspondiente.
La función  sv_2mortal  marca el SV recién creado como mortal
para que su memoria pueda ser liberada por el sistema de gestión de memoria
cuando sea seguro hacerlo.
Casiano Rodríguez León
