Namenskonventionen
Nun einmal etwas leichteres, wenigstens vom Thema her. Die Umsetzung der nachfolgenden
'Programmier-Richtlinie' erfordert aber eine gewisse Disziplin beim Programmieren
(und das ist wieder etwas schwieriger).
Unter WINDOWS-Programmierern hat sich für die Vergabe von Namen für Variablen
und Konstanten die so genannte Ungarische Notation durchgesetzt. Ein Name
besteht hierbei aus folgenden zwei Komponenten:
- einem Präfix, der den Datentyp der Variable/Konstante beschreibt
- dem eigentlichen Namen. Der Name sollte bei Variablen nur aus Buchstaben bestehen,
wobei an Wortgrenzen der besseren Lesbarkeit wegen Großbuchstaben einzusetzen
sind. Konstantennamen hingegen bestehen nur aus Großbuchstaben. Hier kann, ebenfalls
der besseren Lesbarkeit wegen, auch ein Underscore an den Wortgrenzen eingesetzt
werden.
Folgende Präfixe sind hierbei für die einzelnen Datentypen zu verwenden:
|
Datentyp
|
Präfix
|
Anmerkung
|
| bool / unsigned
char |
b |
vorzeichenloser
8-Bit Wert, bool Wert oder OEM-Zeichen |
| char |
c |
vorzeichenbehafteter
8-Bit Wert, ASCII-Zeichen |
| unsigned short |
w |
vorzeichenloser
16-Bit Wert |
| short / integer |
n |
vorzeichenbehafteter
16-Bit Wert oder Integer Wert |
| unsigned long |
dw |
vorzeichenloser
32-Bit Wert |
| long |
l |
vorzeichenbehafteter
32-Bit Wert |
| float |
f |
32-Bit Gleitkommazahl |
| double |
d |
48-Bit Gleitkommazahl |
| double float |
df |
48-Bit Gleitkommazahl |
| class |
C |
Klasse oder
Instanz einer Klasse |
| union |
u |
Variante (union)
oder Instanz einer Variante |
| struct |
str |
Struktur oder
Instanz einer Struktur |
| enum |
e |
Enumeration
oder Instanz einer Enumeration |
|
Zusatz-Präfixe, stehen immer in Kombination mit einem
anderen Präfix und an erster Stelle |
|
sz |
Zeichenkette,
mit '0' abgeschlossen |
|
p |
Zeiger (pointer) |
|
a |
Feld (array) |
|
m_ |
Member (einer
Klasse) |
Damit Sie sich unter der Ungarischen Notation auch etwas vorstellen können,
nachfolgend ein paar Beispiele dazu:
|
Variablenbezeichnung
|
Bedeutung
|
|
pszString |
Zeiger auf
eine mit '0' abgeschlossene Zeichenkette |
|
nVar |
short- oder
Integer Variable |
|
acTemp[5] |
Feld mit vorzeichenlosen
8-Bit Zahlen oder ASCII-Zeichen |
|
strPoint |
Strukturdeklaration
oder -instanz |
|
CMyWindow |
Klassendeklaration
oder -instanz |
|
pCMyWin->m_wHeight |
Zugriff über
einen Klassenzeiger auf eine Membervariable vom Typ 'unsigned short' |
Und zum Schluss dieser Lektion noch ein Hinweis zu den Datentypen. Streng genommen
gilt für die Datentypen nur folgende Definition:
| char |
= |
1 Byte |
| char |
< |
short |
| short |
<= |
int |
| int |
<= |
long |
Bei einem 32-Bit Compiler, wie dem VC++ 6.0, belegt ein char-Datum 1 Byte, ein
short-Datum 2 Bytes und ein long-Datum 4 Bytes. Ebenfalls 4 Bytes belegt der int-Datentyp.
Bei Compiler für 16-Bit Umgebungen, wie für WINDOWS 3.xx, ist ein int-Wert hingegen
nur 2 Bytes lang. Diese unterschiedliche Länge des int-Datentyps war auch damals
eines der Hauptprobleme beim Übergang von WINDOWS 3.xx auf WINDOWS95.
Da wir nun aber schon bei den Datentypen sind wollen wir uns in der nächsten
Lektion auch einige WINDOWS-spezifische Datentypen ansehen.
|