treeScannerC/doc/code_style.md
Adam Skotarczak 4a9b5e77f3
v1.0.0
- C-Template für CLI Tools
2025-05-09 22:46:31 +02:00

2.1 KiB
Raw Permalink Blame History

C Code Style Guide für CLI-Projekte

🔧 Allgemeines

  • Zeichencodierung: UTF-8 (ohne BOM)
  • Zeilenenden: LF (\n) plattformunabhängig
  • Einrückung: 4 Leerzeichen (keine Tabs)
  • Maximale Zeilenlänge: 100 Zeichen (Ausnahme: ASCII-Bäume oder Formatstrings)

🧱 Präprozessor-Direktiven

#ifndef APP_H
#define APP_H

// Keine Einrückung bei #define, #ifdef, #endif
// Kommentare nach #endif zur Orientierung bei größeren Headern

#endif // APP_H

📦 Header-Dateien (.h)

  • Funktionsprototypen sind nicht eingerückt
  • Kommentare über dem Prototyp mit Doxygen-Stil (/** ... */)
  • Header Guards oder #pragma once aber nicht beides
/**
 * @brief Führt rekursive Verzeichnissuche durch.
 *
 * @param base_path Startpfad
 * @param depth Rekursionstiefe (nur zur Einrückung)
 */
void scan_directory(const char *base_path, int depth);

🧠 Funktionen

int main(int argc, char *argv[]) {
    // Code beginnt eingerückt
    if (argc > 1) {
        printf("Pfad: %s\n", argv[1]);
    }

    return 0;
}
  • Funktionsklammern immer öffnend auf derselben Zeile
  • Immer mit Rückgabetyp (void, int, etc.)
  • Keine leeren Parameterlisten → void verwenden (int foo(void))

🌳 Einrückung & Blöcke

if (ok) {
    mach_was();
} else {
    mach_anders();
}
  • if, else, while, for immer mit {} auch bei einzeiligen Blöcken
  • Klammern auf derselben Zeile
  • Keine überflüssigen Leerzeilen innerhalb eines Blocks

🧾 Kommentare

  • Doxygen-kompatibel für alles, was extern verwendet wird
  • Inline-Kommentare nur bei nicht sofort ersichtlicher Logik
// Rekursion starten, wenn Verzeichnis
scan_directory(sub_path, depth + 1);

📁 Dateibenennung

Elementtyp Beispiel
Header-Dateien app.h
Implementierung app.c
Main-Einstieg main.c
Konstanten/Makros config.h

📚 Optionaler Zusatz für Tools

  • Doxygen mit Doxyfile
  • clang-format für Einrückung und Formatierung
  • cppcheck für statische Analyse