claude-code

C

Assume modern GCC, C99+, unless evidence says otherwise. Prefer data-oriented design.

Language & safety

Functions & control flow

Scope & visibility

File layout (.c)

Order: includes -> preprocessor -> typedefs -> extern vars -> static vars -> static functions -> public functions.

Header files (.h)

// …

#endif // FILENAME__


## Structs
- Always `typedef`; prefer anonymous.
- Add `packed` to any struct that is serialized/deserialized.
- Initialize, set, and copy safely:
```c
foo_t foo = { /* optional initial values */ }; // initialize (designated initializer)
foo = (foo_t){ /* ... */ };                    // set (compound literal)
foo = foo_b;                                   // copy

Enums

static const struct { const char *name; bool data_required; } FOO_DATA[] = { [FOO_A] = { .name = “A”, .data_required = true, }, [FOO_B] = { .name = “B”, .data_required = false, }, }; _Static_assert(ARRAY_LEN(FOO_DATA) == FOO_COUNT, “FOO_DATA/FOO_COUNT mismatch”); ```

Style