← ClaudeAtlas

c99-guidelisted

Use when editing or reviewing general-purpose C99: libraries, CLI tools, system code without strong opinions on memory ownership or layout. Triggers on `.c`/`.h` files and prompts about C99 idioms, designated initializers, fixed-width types, const-correctness, malloc/free patterns, inline functions, value-oriented APIs, sanitizers, or error returns, even when the user doesn't say 'C'.
xonovex/platform · ★ 5 · Web & Frontend · score 72
Install: claude install-skill xonovex/platform
# C99 Coding Guidelines ## Essentials - **Memory management** - Free all heap allocations, avoid leaks, see [references/memory-management.md](references/memory-management.md) - **Modern C99** - Use `const`, designated initializers (ZII), small functions, see [references/designated-initializers.md](references/designated-initializers.md), [references/const-correctness.md](references/const-correctness.md) - **Fixed-width types** - Name widths with `<stdint.h>` for sized/serialized data; `size_t` for counts and indices, see [references/fixed-width-types.md](references/fixed-width-types.md) - **Type safety** - Favor `inline` functions over macros where practical, see [references/inline-functions.md](references/inline-functions.md) - **Quality** - Pin strict C99, treat warnings as errors, keep an ASan/UBSan debug build, run static analysis, see [references/build-and-warnings.md](references/build-and-warnings.md) ## Best practices - **Error handling** - Use return codes, check all fallible operations, see [references/error-handling.md](references/error-handling.md) - **Value-oriented APIs** - Return small results by value; reserve out-params for large or multiple results, see [references/value-types.md](references/value-types.md) - **Strings** - Borrow length-carrying views, write through bounded builders over caller memory, not `strlen`/`strcat`/`strtok` rescans, see [references/string-views.md](references/string-views.md) - **Input validation** - Check bounds, NULL pointers, d