P8000/WEGA/contrib/ingres/dbs/tmp/f77/amxf.2

83 lines
2.5 KiB
Groff

.sh FELDER
In \*(FF beginnen Indizes von Felder (Vektoren)
immer mit 1,
in C dagegen mit 0.
.s1
Beispiel
.lp +20 15
\*(FF: array(n)\ \ \ hat die Indizes 1 .. n
.lp +20 15
C array[n]\ \ \ hat die Indizes 0 .. (n - 1)
.i0
.s1
Probleme k::onnen immer dann auftreten,
wenn ::uber Argumente ein Index ::ubermittelt wird,
der den Bearbeitungsstand des Feldes ausdr::ucken soll.
Die ::Ubermittlung der Kardinalit::at
des Feldes (Anzahl der Feldelemente)
bringt keine Probleme.
.br
In mehrdimensionalen Feldern hat in \*(FF
Spalte vor Zeile,
in C Zeile vor Spalte Vorrang.
.s1
.nf
\*(FF
+\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+
a(2,3) | 1,1 | 1,2 | 1,3 | 2,1 | 2,2 | 2,3 |
a(3,2) | 1,1 | 1,2 | 2,1 | 2,2 | 3,1 | 3,2 |
a(6) | 1 | 2 | 3 | 4 | 5 | 6 |
+\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+
C
+\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+
a[6] | 0 | 1 | 2 | 3 | 4 | 5 |
a[2,3] | 0,0 | 1,0 | 0,1 | 1,1 | 0,2 | 1,2 |
a[3,2] | 0,0 | 1,0 | 2,0 | 0,1 | 1,1 | 2,1 |
+\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+
.fi
.s1
.sh "\*(FF KONVENTIONEN"
Der Eintrittspunkt in das
\*(FF\*-Programm ist
.s1
.in 15
subroutine amx()
.i0
.s2
Damit wird eine ordnungsgem::a::se
Datenbankinitialisierung und
\*-beendigung gesichert.
.br
F::ur \*(FF gibt es keine weiteren Konventionen
zu beachten,
folgende Hinweise soolen die Arbeit etwas erleichtern:
.s1
.lp +10 5
\*- Vermeiden Sie die Verwendung von Funktionen,
die in C geschrieben sind
und von \*(FF aufgerufen werden,
solange Sie den mechanismus der
Argument::ubergabe nicht vollst::andig verstanden haben.
.s1
.lp +10 5
\*- Stringvariablen in \*(FF,
die Zei\%chen\%ket\%ten\%dom::anen aufnehmen sollen,
m::ussen ein Zeichen l::anger sein,
als die L::ange der Zei\%chen\%ket\%ten\%dom::ane
in der Datenbank,
auch wenn \*(FF das Abschlu::szeichen `\e0'
f::ur die Zeichenkette nicht ben::otigt.
.s2
.lp +10 5
\*- Schon sehr kleine
\*(AA/\*(FF\*-Programme belegen
den vollen Adre::sraum.
Benutzen Sie von vornherein die
::Uberlagerungsstrukturen.
.s2
.lp +10 5
\*- Benutzen Sie f::ur \*(AA/\*FF\*-Austauschobjekte
vom Typ `integer' immerr `integer*2'
bzw. `integer*4'.
.s1