From: Zbigniew Jędrzejewski-Szmek Date: Tue, 6 Jul 2021 11:44:51 +0000 (+0200) Subject: CODING_STYLE: allow joined variable declarations and function calls X-Git-Tag: v250-rc1~353^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9214f2999b85533ad184e6508f0a0a078d9d3b8f;p=thirdparty%2Fsystemd.git CODING_STYLE: allow joined variable declarations and function calls … but only for a single variable. The guidelines already allowed declaring variables at the point of initialization. But not making a function call to do that. Let's allow that now. The existing style of declaring and initializing seperate is still allowed, and whatever makes most sense should be used. --- diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md index f2c877ccebf..4792f270c59 100644 --- a/docs/CODING_STYLE.md +++ b/docs/CODING_STYLE.md @@ -153,25 +153,34 @@ SPDX-License-Identifier: LGPL-2.1-or-later ## Using C Constructs - Allocate local variables where it makes sense: at the top of the block, or at - the point where they can be initialized. `r` is typically used for a local - state variable, but should almost always be declared at the top of the - function. + the point where they can be initialized. Avoid huge variable declaration + lists at the top of the function. + + As an exception, `r` is typically used for a local state variable, but should + almost always be declared as the last variable at the top of the function. ```c { - uint64_t a, b; + uint64_t a; int r; - a = frobnicate(); - b = a + 5; + r = frobnicate(&a); + if (r < 0) + … + + uint64_t b = a + 1, c; - r = do_something(); + r = foobarify(a, b, &c); if (r < 0) … + + const char *pretty = prettify(a, b, c); + … } ``` -- Do not mix function invocations with variable definitions in one line. +- Do not mix multiple variable definitions with function invocations or + complicated expressions: ```c { @@ -225,7 +234,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later - To determine the length of a constant string `"foo"`, don't bother with `sizeof("foo")-1`, please use `strlen()` instead (both gcc and clang optimize the call away for fixed strings). The only exception is when declaring an - array. In that case use STRLEN, which evaluates to a static constant and + array. In that case use `STRLEN()`, which evaluates to a static constant and doesn't force the compiler to create a VLA. - Please use C's downgrade-to-bool feature only for expressions that are