Edit v5.010 from 2005-03-29 to 2023-10-02 by HSc+SBa
Konventionen für die Programmiersprach C von 8 bis 16 Bit
+ Wollen Sie in unserem Team programmieren, sind Regeln der Zusammenarbeit gefragt. Eine ist die Schreibweise von Variablen und Objekten in Quelltexten. Wie diese bei H&S<-EDV erfolgt, wird im nachfolgend beschrieben.
Konvention für den Aufbau von Quelltexten in- "Header Input Process Output" auch als HIPO bezeichnet.
- Konstanten,
- Variablen und
- Objekten.
Aufbau von Quelltexten
Header Input Process Output
Vorteil:
- Sie ist in jedem Texteditor anwendbar!
- Die Erläuterung, was der folgende Quelltext realisieren soll, was er übergeben bekommt, was er intern gebraucht und was er zurückgibt, steht direkt vor dem Quelltext!
- abgegrenzte Funktionen,
- einfache Datenschnittstelle und
- Geheimhaltung der Wirkungsweise durch Übergabe der Art und Weise des Funktionsaufrufs und den Kommentarkopf.
… /****************************************************************************** * main = Kopf der Hauptdatei und deren Beschreibungen * * -------------------------------------------------------------------------- * * Process * * = Konstante siehe Definition. * * = Variable * * + Extern * * - giFehler: Siehe husvedvf.cpp! * * + Intern siehe Deklaration. * ******************************************************************************/ int main(int iArg, char* pcaArg[], char* pcaEnv[]) { /******* Definition from constant *********************************************/ enum ePHASE {FREI, STOSZD, BODEN}; const float fCWasser=4190, // Waermekapazitaet von Wasser = 4,19 J/kg/K! fDSatzMax=300.0, // Der maximale Massedurchsatz des Triebwerks in kg/s! fG=6.673E-11, // Gravitationskonstante G = 6,673*10-11 m^3 / kg / s^2^! fGErde=9.81, // Erdbeschleunigung auf der Oberflaeche in m/s^2. fGMax=3, // Die maximale Beschleunigung fuer Besatzung und Technik in g. fMMond=7.35E+22, // Masse vom Mond m = 7,35* 10+22kg! fMWasser=1, // Masse des Wassers im Stoszdaempfer = 1kg! …
Da diese Art und Weise der Beschreibung des Quelltextes immer möglich ist, ist diese bei uns das Minimum dessen Dokumentation!
Benennung
Der Name von Konstanten, Variablen und Objekten hat die Aufgabe diese zu beschreiben. Es sollte aber nicht die maximale Größe von 240 Zeichen pro Name ausgenutzt werden. Der Seitenrand eines Blattes Papier im Format A4 und bei einer Schriftgröße von 10, ist bei 80 Zeichen pro Zeile auch ausgereizt. Und es sollte mehr als nur einen Namen pro Zeile stehen. Ein Kompromiss ist irgendwo zwischen 8 und 16 Zeichen pro Name zu finden.
Die ungarische Konvention, welche auch von namhaften Herstellern verwendet wird, wurde mit Einführung der objektorientierten Programmierung, durch Reddig für Visual Basic überarbeitet. An diese angelehnt sind die Vorgaben die in der Firma "H&S<−EDV" für diese gelten.
An Hand der Präfixe, Typbezeichnung und eventuellem Suffix von Konstanten, Variablen und Objekten, erkennt man, ohne nach der Deklaration der selbigen suchen zu müssen, von welchem Datentypen diese sein sollte und wofür eingesetzt wird.
Der Basisname ist der eigentliche Name der Konstante bzw. Variable bzw. des Objekts. Auf die Beschreibung des Basisnamens und der Komponenten davor und danach wird jeweils bei den
- Konstanten,
- Variablen und
- Objekten
Variablen
Zum Bsp. die Variable für die Anzahl der € als Integervariable ohne Vorzeichen (unsigned integer) könnte uitEuroAnz mit
- der Typ uitEuroAnz für unsigned integer,
- dem Name der Variable uitEuroAnz für € und
- dem Suffix uitEuroAnz für die Anzahl.
Konstanten
Zum Bsp. die Konstante für den €-Umrechnungsfaktor im Zahlenformat double könnte heißen dblEURO_FAKTOR,
- der Typ dblEURO_FAKTOR für double,
- den Name der Konstante dblEURO_FAKTOR für € und
- der Suffix dblEURO_FAKTOR für den Umrechnungsfaktor.
Präfixe
Präfix | Kürzel | Beispiel |
---|---|---|
Gültigkeitsbereich und Lebensdauer | ||
(kein) |
intZaehler = eine lokal verfügbare Integer-Variable für das Zählen. | |
globally (global gültig) |
g | gintFehler = eine global verfügbare Integer-Variable für auftretende Fehler und deren Behandlung. |
modul (Gültigkeit ist statisch auf die Datei, das Modul, beschränkt) |
m | mstfMuster = eine überall in der Datei Start.CPP, auch Modul genannt, statisch verfügbare Variable, welche ein Muster in Form einer Zeichenkette (String Fix) enthält. |
Adressen und Zeiger | ||
array (Feld) |
a | caMuster[40] = die Variable vom Typ Zeichen, eingesetzt für das Muster, als ein Feld (a) mit einen Platz für maximal 40 Zeichen. Die Kombination "ca" wurde dann später durch "stf" abgelöst! |
point (Zeiger auf eine Variable vom Typ …) |
p | stfpVersion = Zeichenketten-Zeiger (p) auf eine Variable, die die Versionsnummer als reine Zeichenkette mit einer festen Länge (stf) enthält. |
Es ist das 1 Zeichen, welches das nachfolgende Typkürzel um eine Ortsangabe versehen werden soll. Oder das vorangehende Typkürzel um die Modifikation des Typs erweitert. Zum Beispiel wenn es ein Zeiger auf diesen Datentyp bzw. ein Feld von diesem Datentyp ist. Das Präfix steht immer nach dem Datentyp.
Suffix
Suffix | Kürzel | Beispiel |
---|---|---|
Anzahl | Anz | intZimmerAnz = Die Anzahl des verfügbaren Zimmer. |
Anfang | Anf | intZaehlerAnf = Startwert des Zählers. |
Ende | End | intZaehlerEnd = Endwert des Zählers. |
Limit | Lim | fltGewinnLim = Gewinn-Limit bei dem die Firma in eine andere Rechtsform wechseln muss. |
Maximum | Max | fltGewinnMax = Größter Gewinn pro Monat in diesem Jahr. |
Minimum | Min | fltGewinnMin = Geringster Gewinn pro Monat in diesem Jahr. |
Nachher | Nch | fltGewinnNch = Gewinn nach dem aktuellen Monat. |
Vorher | Vor | fltGewinnVor = Gewinn nach dem vor dem aktuellen Monat. |
Der Suffix (Anf, Anz, Max, Min, Vor, Nach, Ende, ...) kann das 2. Wort in der Benennung der Variable sein. Sie bietet zusätzliche Informationen zum Basisname. Zur Trennung vom Basisnamen wird wieder das erste Zeichen des Suffixes großgeschrieben . Zum Beispiel für die Anfangsarbeitszeit könnte die Variable dtmArbeitAnf sein. Sie haben analog wie die Präfixe i.d.R. eine Länge von 3 Zeichen und sie steht nach dem Namen der Variable.
Typbezeichnungen
Typ | Kürzel | Länge | Wertebereich | Beispiel |
---|---|---|---|---|
Basic-Variablen | ||||
boolean, logical (Logisch) |
bln, l | 8 Bit | 0=false und 1=true |
blnLichtAn bzw. lLichtAn |
byte, (8 Bit) |
byt, b | 8 Bit |
Unsigned: 0 … 255 |
bytDatenPrn bzw. bDatenPrn = Das Datenbyte für den Drucker an der Schnittstelle Prn für Printer. |
character (Zeichen) |
chr, c | 8 Bit |
Signed: -127 … 128 Unsigned: 0 … 255 '1', 'a', '~' |
chrZeichen bzw. cZeichen |
handle (Zeiger auf eine Datei oder ein Objekt oder eine Instanz) |
h | 32 Bit | Unsigned: 0 … 4.294.967.296 | hSender = Nummer dew aufrufende Objekt bzw. Programms (Instanz), welches diese Funktion aufgerufen hat. |
Ganzzahlen und Zähler | ||||
double word (Doppelte Größe von Word) |
dwd | 32 Bit 4 Byte |
Unsigned: 0 … 4.294.967.296 entspricht damit unsigned integer |
dwdDateigroesze, welche diese bis 4GByte abdeckt. |
short int, int16_t (Ganzzahl) |
i, i16 | 16 Bit 2 Byte |
Signed: -32.767 … 32.768 Unsigned: 0 … 65.536 |
iJahre oder i16Jahre |
int, int32_t (Ganzzahl) |
int i32 |
32 Bit 4 Byte |
Signed: -2.147.483.647 … 2.147.483.648 Unsigned: 0 … 4.294.967.296 |
intMeilen oder i32Meilen = Die Anzahl der Meilen als große Ganzzahl. |
long long, int64_t (Ganzzahl) |
lng, i64 | 64 Bit 8 Byte |
Signed: -9.223.372.036.854.775.807 … 9.223.372.036.854.775.808 Unsigned: 0 … 18.446.744.073.709.551.616 |
lngLichtjahrKm bzw. i64LichtjahrKm = Lichtjahr in km ausgedrückte, als super große Umrechnungsvariable. |
quad word (unsigened long integer) |
qwd | 64 Bit 4 Byte |
Unsigned: 0 … 18.446.744.073.709.551.616 entspricht damit unsigned long integer | wAdresse, welche diese bei MS-DOS mit einem RAM bis 64kByte abgedeckt hatte. |
word (unsigened short integer) |
w | 16 Bit 2 Byte |
Unsigned: 0 … 65.536 entspricht damit unsigned short integer | wAdresse, welche diese bei MS-DOS mit einem RAM bis 64kByte abgedeckt hatte. |
Gebrochenen und Gleitkommazahlen | ||||
currency (Festkommaabrechnungen für Geldbeträge) |
cur | 64 Bit |
-922.337.203.685.477,5808 …922.337.203.685.477,5807 und ergibt sich aus einer 8 Byte Ganzzahl, welche vor der Ausgabe durch 10.000 geteilt wird, was eine Festkommazahl von 15 Vor- und 4 Nachkommastellen ergibt. |
curRettungsschirm = Ein Betrag der im Oktober 2011 1.000 1.000 Milliarden € betrug. |
float (Gleitkommazahl) |
flt, f | 32 Bit | 1.5E-45 … 3.4E38 (7- 8 Stellen) |
fltBetrag = Ein Betrag als Fließkommauzahl. |
double (Gleitkommazahl Doppelte Genauigkeit) |
dbl | 64 Bit | 5.0E-324 … 1.7E308 (15-16 Stellen) |
dblPi = Die Zahl Pi mit so vielen Stellen wie möglich. |
long double (Gleitkommazahl Doppelte Genauigkeit, Lang) |
ldb | 80 Bit | 1.9E-4951 … 1.1E4932 (19-20 Stellen) |
ldbAtome = Die Anzahl der Atome ist wirklich gewaltig. |
Spezielle Felder und strukturierte Variablen | ||||
date time (Datum Uhrzeit) |
dtm | Struktur mit x Variablen |
1900-01-01, 00:00:00 … 2009-11-25, 16:23:95 |
dtmGeburt = Geburtstag |
char name[n] (Feste Zeichenkette auch "string fix" genannt.) |
stf | Feld mit n Byte | Eine Zeichenkette mit fester Länge. | stfName = Eine Variable für einen Namen, wo der reine Text, ohne Format, Farbe, etc., aufgenommen werden kann. |
variant (Variables, eigentlich unbekanntes Format) |
var | n Byte | Speicherbereich | varUebergabe = Bekannt ist, was für Inhalt übergeben wird, aber die Form und damit der Typ ist unbekannt. |
Objekte
Typ | Kürzel | Beispiel |
---|---|---|
Formulare und Menüs | ||
Formular | frm | frmStart ist das 1. Formular, welches beim Programmstart aufgerufen wird. |
Menu | mnu | mnuHaupt ist das Hauptmenü. |
MIDI Formular | mdi | mdiSong zeigt in einem Formular. |
Steuerelemente | ||
BitBottom | bbm | bbmOk als Kommandoknopf mit hinterlegter Bitmap zum Bestätigen |
CheckBox | cbx | cbxFarben als Testbox mit den möglichen Farben. |
ComboBox | cbo | cboDateitypen mit einer aufklappbaren Liste für die Auswahl eines Dateityps. |
Command Button | cmd | cmdOk als Kommandoknopf zum Bestätigen |
Database | dbe | dbeAufgabe ist die Datenbank für die Tabellen, welche notwendig sind um die Verwaltung der Aufgaben zu erfassen. |
Database table | dbt | dbtPostionen ist eine Tabelle aus einer Datenbank, welche erstellt worden ist, um die Positionen in der Datenbank zu erfassen. |
DirListBox | dir | dirAblage ist das Objekt, welches die Auswahl des Pfades für die Dateiablage anbietet. |
DriveListBox | drv | drvDaten ist das Objekt, welches die Auswahl des Laufwerkes für die Dateiablage anbietet. |
Edit Edit |
edt | edtEingabe als Eingabefeld für Texteingabe und -korrektur, welche später mittels Konvertierung in jeden anderen Typ umgewandelt werden kann. |
Formular Form |
frm | frmMain das Hauptformular, welche die anderen Elemente als Startformular aufnimmt. |
FileListBox | fil | filDaten ist das Objekt, welches die Dateiauswahl für die Datenablage anbietet. |
Frame | fra | fraBitBang ist das Objekt, welches andere Objekte zum Thema BitBang aufnehmen und gruppieren soll. |
Image | img | imgLogo, welches das Logo des Programms in der Infobox anzeigen soll. |
Label Label (Editkett) |
lbl | lblOperation zur Ausgabe der Operation als Text zur Ansicht. |
Listbox | lbx | lbxAnhaenge zur Anzeige der geschriebenen Anhänge in Form einer Liste. |
MaskeEdit (Eingabemaske) |
met | metProtokoll (####cc#)zur Aufnahme des Logbuches mit 4 Ziffern, 3 Zeichen und einer abschließenden Ziffer im Namen, welches unter anderen später als *.TXT gespeichert werden kann. |
Memo (Textfeld) |
mmo | mmoProtokoll zur Aufnahme des Logbuches, welches unter anderen später als *.TXT gespeichert werden kann. |
String | str | strBezeichnung zur Aufnahme der Artikelbezeichnung mit den Möglichkeiten der Schriftformatierung. Oft ist der grundlegende Datentyp dafür ANSI. |
Textbox | txt | txtAnhang zur Aufnahme des Textes mittels einer Box, welches unter anderen später als *.TXT gespeichert werden kann. |
Ihre Typbezeichnungen haben nur eine andere Bedeutung. Da es aber eine große Anzahl von Objekt- als Variablen−Typen gibt, gilt hier folgende allgemeine Regel bei der 3stelligen Typbezeichnung: Die Anfangsbuchstaben der
- einzelnen Silben oder
- einzelnen zusammengesetzten Substantive und bei Bedarf noch den letzten Buchstaben.