QueryCoinsPerUnit()

FUNKTION:
     int *QueryCoinsPerUnits();

DEFINIERT IN:
     /std/unit.c

ARGUMENTE:
     keine

BESCHREIBUNG:
     Liefert das Wertverhaeltnis fuer die Einheiten zurueck.

RUeCKGABEWERT:
     Ein Array von zwei Zahlen. Die erste Zahl ist der Wert der in der
     zweiten Zahl angegebenen Einheiten.

BEISPIELE:
     Steht im Unit-Objekt folgende Wertzuweisung:

       SetCoinsPerUnits(7,2);

     so liefert QueryCoinsPerUnits() als Ergebnis ({7, 2}).

SIEHE AUCH:
     SetCoinsPerUnits(), SetGramsPerUnits(), QueryGramsPerUnit(),
     /std/unit.c

----------------------------------------------------------------------------
Last modified: Wed May 8 10:22:02 1996 by Wargon
