size_t sollte normalerwise verwendet werden. x und i sollten den gleichen Typ vom Vorzeichen her haben. Entweder beide vorzeichenbehaftet oder beide ohne Vorzeichen.
Das hängt 1. Davon ab, was man grad hochzählt und 2. ist das wichtigste ja wohl, das x und i den gleichen Typ, egal erstmal welchen, haben.
Nach dem Tipp von Tobiking2 hier http://www.c-plusplus.de/forum/viewtopic-var-t-is-263735.html bezüglich "Optimization Reference Manual" von Intel, Kapitel "3.4.2.2 Optimizing for Macro-fusion", ist es wohl so, dass "unsigned" Datentypen "Macro-fusion", was immer man darunter versteht, ermöglichen. Es gibt in dem Kapitel auch ein Beispiel mit einer for-Schleife. Lesenswert.
PrettyClean ist eine hübsche, objektive und unbestechliche Monitoring Methodik.
Was macht denn die exe? Habe keine Lust, einem Link zu folgen, der vom gehackten c-plusplus Server angezeigt wird...
Objektiv wäre dieses Tool hier: http://www.splint.org/ Aber das würde die Entwicklung von PrettyOS wahrscheinlich um mehrere Monate verzögern
So, der Thread wird auch mal einem "Ergebnis" zugeführt. Ich habe dabei im wesentlichen die gängige Praxis in PrettyOS wiedergegeben, die sich ja weitestgehend auch aus dem Meinungen hier entwickelt hat. So haben wir das alles mal zusammengefasst, was vor allem für neue Entwickler hilfreich ist. Das hier ist ein Entwurf, der wird noch ergänzt und erweitert.
Codestyle:
Sprachstandard: Der Sourcecode von PrettyOS soll C99-konform sein
Sprache: Kommentare und Funktionsnamen sollen auf Englisch geschrieben werden
Einrückungen: 4 Leerzeichen, keine Tabs
Maximale Zeilenlänge: Keine, es wird gebeten, die Zeilen aber nicht übertrieben lang werden zu lassen.
Zeilenenden: Wir verwenden zwecks Lesbarkeit unter manchen Texteditoren die unter Windows üblichen Zeilenenden: CR LF
Blöcke:
Blockanfang und Blockende nehmen jeweils immer eine separate Zeile in Anspruch (-> { und } in separate Zeile)
Bei Funktionsaufrufen wird zwischen Namen der Funktion und der Parameterliste kein Leerzeichen eingefügt
C/C++ Code:
void foo()
{
// blabla
}
C/C++ Code:
void foo()
{
// blabla
}
C/C++ Code:
void foo()
{
// blabla
}
Kommentare:
Kommentare sind bei einzeiligen Kommentaren mit "//" einzuleiten. Kommentare im Doxygen-Style sollten zwecks Lesbarkeit vermieden werden.
Benennungsregeln:
Als Namespace-Ersatz nutzen wir Unterstriche, ansonsten wird lowerCamelCase verwendet:
C/C++ Code:
void timer_getCurrentSeconds();
C/C++ Code:
void timer_getCurrentSeconds();
C/C++ Code:
void timer_getCurrentSeconds();
Wir verwenden keine ungarische Notation.
Variablendeklaration:
Variablen sind dort zu deklarieren/definieren/initalisieren, wo sie nötig sind. Das bedeutet, den Scope möglichst gering halten.
Pointer:
C/C++ Code:
int x;
int* i = &x;
*x = 4;
C/C++ Code:
int x;
int* i = &x;
*x = 4;
C/C++ Code:
int x;
int* i = &x;
*x = 4;
Header und Sourcefiles:
Jedes Sourcefile soll die Lizenzbedingungen enthalten. Die Lizenz ist, wie in z.B. ckernel.c, unten einzufügen, ein Hinweis auf die Lizenz oben. Bitte einfach aus bestehenden Sourcedateien nachmachen.
In Headern Includeguards nicht vergessen.
NULL oder 0 bei Pointern
Wir bevorzugen direkt die 0, daher wurde die NULL im Kernel gestrichen. Pointer sind also mit 0 anstatt NULL als Nullpointer zu markieren
Commit-Regeln:
Bitte beim Committen folgende Vorgehensweise beachten:
1) Update
2) Code schreiben
2.1) Styleguide beachten
3) in ckernel.c Version und Revision aktualisieren. Die Revisionsnummer ist immer zu erhöhen. Bei der Versionsnummer die letzte Stelle erhöhen, falls es funktionale Änderungen am Kernel gab.
4) Rebuild von PrettyOS und Testen des Floppyimages um sicherzustellen, dass noch alles funktioniert
5) "Release Notes" schreiben. Diese sowohl im Thread "Sourcecode Fortschritt" als auch beim Commit selbst angeben.
6) Nochmal updaten, ggf. vorherige Schritte wiederholen
7) Committen
8) Neue Version im IRC bekannt machen(, wenn Entwickler da sind.)
Wenn es den Wunsch gibt, dass die anderen an bestimmten Sourcecodebereichen temporär nichts ändern sollen, dann äußert den bitte im Forum.
Zuletzt bearbeitet von Mr X am 17:00:22 23.05.2011, insgesamt 2-mal bearbeitet
Farbstil
Um einen einheitlichen, übersichtlichen Farbstil zu schaffen und die Lesbarkeit der Ausgabe zu erhöhen, sollen folgende farbliche Kennzeichnungen genutzt werden. Um diese global umstellen zu können, ist das angegebene Alias zu verwenden. Die Verwendung anderer Farben ist, wo es sinnvoll ist, allerdings nicht verboten.
Code:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
Meldungstyp Alias Aktuelle Farbzuweisung
------------------------------------------------------------
Fehler ERROR LIGHT_RED
Erfolg SUCCESS GREEN
Überschriften HEADLINE CYAN
Tabellenüberschriften TABLE_HEADING LIGHT_GRAY
Daten DATA BROWN
Wichtige Daten IMPORTANT YELLOW
Normaler Text TEXT WHITE
Code:
1 2 3 4 5 6 7 8 9
Meldungstyp Alias Aktuelle Farbzuweisung
------------------------------------------------------------
Fehler ERROR LIGHT_RED
Erfolg SUCCESS GREEN
Überschriften HEADLINE CYAN
Tabellenüberschriften TABLE_HEADING LIGHT_GRAY
Daten DATA BROWN
Wichtige Daten IMPORTANT YELLOW
Normaler Text TEXT WHITE
Code:
1 2 3 4 5 6 7 8 9
Meldungstyp Alias Aktuelle Farbzuweisung
------------------------------------------------------------
Fehler ERROR LIGHT_RED
Erfolg SUCCESS GREEN
Überschriften HEADLINE CYAN
Tabellenüberschriften TABLE_HEADING LIGHT_GRAY
Daten DATA BROWN
Wichtige Daten IMPORTANT YELLOW
Normaler Text TEXT WHITE
Zuletzt bearbeitet von Mr X am 14:04:27 24.06.2011, insgesamt 3-mal bearbeitet
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.