diff options
Diffstat (limited to 'docs/CODING_STYLE.md')
-rw-r--r-- | docs/CODING_STYLE.md | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md index 48fa4b093d..b8b420c142 100644 --- a/docs/CODING_STYLE.md +++ b/docs/CODING_STYLE.md @@ -151,16 +151,16 @@ SPDX-License-Identifier: LGPL-2.1-or-later ## Code Organization and Semantics -- For our codebase we intend to use ISO C11 *with* GNU extensions (aka - "gnu11"). Public APIs (i.e. those we expose via `libsystemd.so` +- For our codebase we intend to use ISO C17 *with* GNU extensions (aka + "gnu17"). Public APIs (i.e. those we expose via `libsystemd.so` i.e. `systemd/sd-*.h`) should only use ISO C89 however (with a very limited set of conservative and common extensions, such as fixed size integer types - from `<inttypes.h>`), so that we don't force consuming programs into C11 + from `<inttypes.h>`), so that we don't force consuming programs into C17 mode. (This discrepancy in particular means one thing: internally we use C99 `bool` booleans, externally C89-compatible `int` booleans which generally have different size in memory and slightly different semantics, also see below.) Both for internal and external code it's OK to use even newer - features and GCC extension than "gnu11", as long as there's reasonable + features and GCC extension than "gnu17", as long as there's reasonable fallback #ifdeffery in place to ensure compatibility is retained with older compilers. |