[ Pobierz całość w formacie PDF ]
string s = "Hello world";
char c = s[2];
eagle.RTF EAGLE Help Seite 180 von 372
Runde Klammern
Runde Klammern (Parentheses) gruppieren Ausdrücke »Seite 244 (ändern eventuell die Priorität der Operatoren
»Seite 237), isolieren bedingte Ausdrücke und bezeichnen Funktionsaufrufe »Seite 250 und Funktionsparameter:
d = c * (a + b);
if (d == z) ++x;
func();
void func2(int n) { ... }
eagle.RTF EAGLE Help Seite 181 von 372
Geschweifte Klammern
Geschweifte Klammern (Braces) bezeichnen den Beginn und das Ende einer Verbundanweisung (Compound
Statement)
if (d == z) {
++x;
func();
}
und werden auch verwendet, um die Werte für die Array-Initialisierung zu gruppieren:
int ai[] = { 1, 2, 3 };
eagle.RTF EAGLE Help Seite 182 von 372
Komma
Das Komma trennt die Elemente einer Funktionsargument-Liste oder die Parameter eines Funktionsaufrufs:
int func(int n, real r, string s) { ... }
int i = func(1, 3.14, "abc");
Es trennt auch die Wertangaben bei der Array-Initialisierung:
int ai[] = { 1, 2, 3 };
und es begrenzt die Elemente einer Variablen-Definition:
int i, j, k;
eagle.RTF EAGLE Help Seite 183 von 372
Semicolon
Der Semicolon schließt ein Statement »Seite 251 ab, wie in
i = a + b;
und er begrenzt die Init-, Test- und Inkrement-Ausdrücke eines for »Seite 258 Statements:
for (int n = 0; n
func(n);
}
eagle.RTF EAGLE Help Seite 184 von 372
Doppelpunkt
Der Doppelpunkt bezeichnet das Ende eines Labels in einem Switch »Seite 261-Statement:
switch (c) {
case 'a': printf("It was an 'a'\n"); break;
case 'b': printf("It was a 'b'\n"); break;
default: printf("none of them\n");
}
eagle.RTF EAGLE Help Seite 185 von 372
Gleichheitszeichen
Das Gleichheitszeichen trennt Variablen-Definitionen von Initialisierungsliste:
int i = 10;
char c[] = { 'a', 'b', 'c' };
Es wird auch als Zuweisungsoperator »Seite 242 verwendet.
eagle.RTF EAGLE Help Seite 186 von 372
Datentypen
Ein User-Language-Programm kann Variablen unterschiedlicher Typen definieren, die unterschiedliche Arten von
EAGLE-Daten repräsentieren.
Die vier grundlegenden Datentypen sind
char »Seite 187 für Einzelzeichen
int »Seite 188 für Ganzzahlen
real »Seite 189 für Gleitkommazahlen
string »Seite 190 für Textinformation
Neben diesen grundlegenden Datentypen gibt es auch High-level-Objekt-Typen »Seite 193, die die
Datenstrukturen repräsentieren, wie sie in den EAGLE-Dateien gespeichert sind.
Der Datentyp void wird nur als Return-Typ einer Funktion »Seite 236 verwendet. Er zeigt an, daß diese
Funktion keinen Wert zurückgibt.
eagle.RTF EAGLE Help Seite 187 von 372
char
Der Datentyp char speichert Einzelzeichen, wie die Buchstaben des Alphabets oder kleine Zahlen ohne
Vorzeichen.
Eine Variable des Typs char belegt 8 bit (1 Byte), und kann jeden Wert im Bereich 0..255 speichern.
Siehe auch Operatoren »Seite 237, Character-Konstanten »Seite 173
eagle.RTF EAGLE Help Seite 188 von 372
int
Der Datentyp int speichert Ganzzahlen mit Vorzeichen, wie die Koordinaten eines Objekts.
Eine Variable vom Typ int belegt 32 bit (4 Byte), und kann jeden Wert im Bereich -
2147483648..2147483647 speichern.
Siehe auch Integer-Konstanten »Seite 174
eagle.RTF EAGLE Help Seite 189 von 372
real
Der Datentyp real speichert Gleitkommazahlen mit Vorzeichen, z.B. den Rasterabstand.
Eine Variable vom Typ real belegt 64 bit (8 Byte), und kann jeden Wert im Bereich ±2.2e-
308..±1.7e+308 mit einer Genauigkeit von 15 Digits speichern.
Siehe auch Real-Konstanten »Seite 175
eagle.RTF EAGLE Help Seite 190 von 372
string
Der Datentyp string speichert Textinformation, z.B. den Namen eines Bauteils oder eines Netzes.
Eine Variable des Typs string ist nicht auf eine bestimmte Länge beschränkt, vorausgesetzt, es steht
genügend Speicher zur Verfügung.
Variablen des Typs string sind ohne explizite Länge definiert. Sie "wachsen" automatisch, soweit erforderlich,
während der Programmausführung.
Die Elemente einer String-Variablen sind vom Typ char »Seite 187, und man kann auf sie individuell
zugreifen, indem man [index] benutzt.
Das erste Zeichen eines Strings hat den Index 0:
string s = "Layout";
printf("Third char is: %c\n", s[2]);
Hier würde das Zeichen 'y' ausgedruckt. Beachten Sie, daß s[2] das dritte Zeichen des Strings s liefert!
Siehe auch Operatoren »Seite 237, Builtin-Functions »Seite 266, String-Konstanten »Seite 176
Implementierungs-Details
Der Datentyp string ist implementiert mit "Zero-terminated-Strings", wie von C her bekannt (also mit char[]).
Betrachtet man die folgende Variablen-Definition
string s = "abcde";
dann ist s[4] das Zeichen 'e', und s[5] ist das Zeichen '\0', oder der Integer-Wert 0x00. Diese Tatsache
kann dazu ausgenutzt werden, das Ende eines Strings ohne die Funktion strlen() »Seite 297
festzustellen, wie in
for (int i = 0; s[i]; ++i) {
// do something with s[i]
}
Es ist auch völlig in Ordnung, einen String "abzuschneiden", indem man den Wert "0" an der gewünschten Stelle
einfügt:
string s = "abcde";
s[3] = 0;
Als Ergebnis erhält man für den String s den Wert "abc".
eagle.RTF EAGLE Help Seite 191 von 372
Typ-Umwandlung
Der Typ des Ergebnisses eines arithmetischen Ausdrucks »Seite 244, wie z.B. a + b, wobei a und b
unterschiedliche arithmetische Typen sind, ist gleich dem "größeren" der beiden Operanden-Typen.
Arithmetische Typen sind char »Seite 187, int »Seite 188 und real »Seite 189 (in dieser
Reihenfolge). Ist zum Beispiel a vom Typ int »Seite 188 und b vom Typ real »Seite 189, dann ist
[ Pobierz całość w formacie PDF ]