Programmiersprache C/C++
4.2. Namen von Variablen und Konstanten
Der Name (Bezeichner) dient zur Identifizierung der Variablen/Konstanten und
muß innerhalb einer Programmeinheit eindeutig sein. In verschiedenen
Programmeinheiten können völlig unabhängig voneinander gleiche Bezeichner (in
identischer oder unterschiedlicher Bedeutung) verwendet werden.
Namen sollten möglichst selbsterklärend gestaltet werden.
Für die Bildung von Namen existieren folgende Restriktionen:
-
Namen dürfen nur aus bestimmten Zeichen gebildet werden.
Zulässig sind Buchstaben und Ziffern sowie das Unterstreichungssymbol
_.
Ausgeschlossen sind in jedem Fall Leerzeichen.
Es wird zwischen Groß- und Kleinbuchstaben unterschieden,
d.h. Groß- und Kleinschreibung spielt eine Rolle.
Eventuell kann die Unterscheidung von Groß- und Kleinbuchstaben
per Compileroption ausgeschaltet werden, um ein Zusammenwirken mit
anderssprachlichen Moduln zu erlauben (z.B. Borland C++).
Namen, die nur aus Großbuchstaben und Unterstreichungssymbol
bestehen, werden vorrangig für symbolische Konstanten und
Makros verwendet, die mit Hilfe der Präprozessor-Direktive
#define deklariert werden.
-
Namen dürfen nur mit ausgewählten Zeichen beginnen.
Zulässig sind Buchstaben, ausgeschlossen sind Ziffern.
Das Unterstreichungssymbol ist in gewissen Fällen einsetzbar, sollte aber
aber nach Möglichkeit vermieden werden, da bei einer Reihe von
Systemen Bezeichner für Spracherweiterungen und symbolische
Konstanten des Laufzeitsystems verwendet werden, die mit _ beginnen.
-
Die Länge von Namen ist in C/C++ Systemen meist nicht
beschränkt.
Achtung: Im allgemeinen sind nicht alle Zeichen signifikant, d.h.
es werden nur die ersten n Zeichen unterscheiden.
ANSI C sieht 31 signifikante Zeichen vor.
-
Bei externen Daten und Funktionen muß mit einer geringeren Anzahl
von signifikanten Zeichen gerechnet werden. Garantiert ist hier nur die
Signifikanz der ersten 6 Zeichen.
Verantwortlich dafür ist die Arbeitsweise einiger (älterer)
Programmverbinder bzw. Konventionen anderer Programmiersprachen.
Außerdem muß damit gerechnet werden, daß externe
Systeme keine Unterscheidung von Groß- und Kleinbuchstaben
vornehmen.
-
Reservierte Namen (Schlüsselworte,
Wortsymbole) dürfen nicht zur Bildung von Namen herangezogen
werden.
Mit Vorsicht behandelt werden sollten auch Namen, die als potentielle
Spracherweiterung in Frage kommen.
-
Vom Laufzeitsystem verwendete Namen sollten nicht zur Namensbildung
verwendet werden, um beim Leser des Quelltextes mögliche
Mißverständnisse auszuschließen.
Mit Hilfe des Präprozessors ist es möglich, eine Reihe von
Namenskonflikten zu entschärfen.
Beispiel:
Falls ein C-System in einem zu portierenden Programm Probleme mit langen
Namen hat, kann wie folgt verfahren werden:
#define langer_name kurzer_name
Durch Einfügung derartiger Präprozessor-Anweisungen am Beginn des
Quelltexts können - fehleranfällige - Änderungen am
eigentlichen Quelltext vermieden werden.
Es wurde bereits darauf hingewiesen, daß einige Namen bzw.
Namensschreibweisen vermieden werden sollten. Problemkandidaten sind zum
Beispiel:
-
Bibliotheken benutzen oft für bereitgestellte Datentypen Namen,
die mit _t enden.
-
Microsoft verwendet mit Vorliebe Bezeichner wie DasIstDieFunktion.
Konsequente Kleinschreibung bei eigenen Bezeichnern vermeidet hier
Konflikte.
Qualifizierte Namen
Qualifizierte Namen haben folgenden Aufbau:
name.komponente
name->komponente Zugriff über einen Zeiger
name bezeichnet dabei eine Struktur oder eine Union.
Zurück zum Menü
Zurück zur vorigen Seite
Weiter zur nächsten Seite
P. Böhme, 24.12.1995