Ich bin neu in der Kernel-Programmierung, also würde ich gerne herausfinden, welcher Codierungsstil akzeptabler ist. Was ist beispielsweise bei der Fehlerbehandlung besser?
Dieses:
/* some stuff */
if(error) {
/* error handling */
return -(errorcode);
}
/* normal actions */
oder dieses:
/* some stuff */
if(!error) {
/* normal actions */
} else {
/* error handling */
return -(errorcode);
}
Wo finde ich ein Dokument, das sich auf den Kernel-Codierungsstandard bezieht?
Der Linux-Kernel hat einen Coding Style Guide:
https://www.kernel.org/doc/Documentation/process/coding-style.rst
Schöner formatierte Version
In Bezug auf Ihr Beispiel bevorzuge ich persönlich den ersten Stil. Mit dem zweiten Stil verstoßen Sie schnell gegen diese Linux-Kernel-Stilregel (Kernel-Stil hat 8-stellige Einrückung):
Wenn Sie mehr als 3 Einrückungsebenen benötigen, sind Sie sowieso aufgeschmissen und sollten Ihr Programm reparieren.
Das Schreiben von Code von oben nach unten (im Gegensatz zu horizontal) wird manchmal als bezeichnet muffig. Ich kann Ihnen diese ausgezeichnete Lektüre zu diesem Thema empfehlen:
Code von oben nach unten lesen
kernel.org/doc/Documentation/CodingStyle
– au
7. Oktober 2012 um 19:46 Uhr
Und um auf Ouahs Most Excellent-Antwort näher einzugehen: Ihr erster Ausschnitt wird gegenüber dem zweiten “bevorzugt”. Aber der Hauptpunkt ist, den K & R-Stil zu verwenden (im Gegensatz zu .Net oder Java oder – Himmel bewahre – MS “ungarische” Codierungsstile) 😉
– paulsm4
7. Oktober 2012 um 19:53 Uhr
Und fügen Sie Leerzeichen nach “if” hinzu 🙂 lxr.linux.no/#linux+v3.6.1/Documentation/CodingStyle#L179 Wenn es um den Codierungsstil im Allgemeinen geht, habe ich dieses Dokument als Grundlage für die gesamte Codierung in C verwendet – nicht nur für die Kernel-Codierung – und fand es von unschätzbarem Wert.
– Morphfh
7. Oktober 2012 um 20:09 Uhr