Given the number (and length) of arguments you're passing, I'd prefer to see the arguments passed one per line as I've formatted them above, rather than a variable number per line to justify out to some particular right margin.
Since
stringify_state
isn't intended to modify thestateState
whose address is being passed, it's probably better to define the parameter as aState const *
. Likewise with the local variables, so the first lines would probably be better written something like this:char* stringify_state(State const* state) { Pet const* p = state->pet; Settings const* s = state->settings;