Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Projekt: OS-Development  ::  Code Styleguide  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1346
Beitrag abc.w Mitglied 18:46:40 28.02.2010   Titel:              Zitieren

Mr X schrieb:
warum kein "int"? Was meinst Du damit?

Das x und i den gleichen Typ haben sollen?


size_t sollte normalerwise verwendet werden. x und i sollten den gleichen Typ vom Vorzeichen her haben. Entweder beide vorzeichenbehaftet oder beide ohne Vorzeichen.
Mr X
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2007
Beiträge: 1047
Beitrag Mr X Mitglied 18:59:25 28.02.2010   Titel:              Zitieren

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.
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1346
Beitrag abc.w Mitglied 20:12:06 25.03.2010   Titel:              Zitieren

Mr X schrieb:
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.
Mr X
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2007
Beiträge: 1047
Beitrag Mr X Mitglied 17:25:51 28.03.2010   Titel:              Zitieren

Danke für das Programm, Cuervo :)

Nunja, jedes mal prüfen zu lassen halte ich für etwas übertrieben, aber ab wär das auf jeden Fall gut.
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 18:48:03 28.03.2010   Titel:              Zitieren

PrettyClean ist eine hübsche, objektive und unbestechliche Monitoring Methodik. Der Schrecken jedes Pretty Code Proggers. ;)

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1346
Beitrag abc.w Mitglied 21:38:11 31.03.2010   Titel:              Zitieren

Erhard Henkes schrieb:
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 ;)
Mr X
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2007
Beiträge: 1047
Beitrag Mr X Mitglied 23:47:50 29.07.2010   Titel:              Zitieren

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
Mr X
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2007
Beiträge: 1047
Beitrag Mr X Mitglied 12:27:09 24.06.2011   Titel:              Zitieren

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
C/C++ Forum :: Projekt: OS-Development  ::  Code Styleguide  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




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.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

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.