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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2021-07-06 13:44:51 +02:00
parent db2aef5a1d
commit 9214f2999b

View file

@ -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 = do_something();
r = frobnicate(&a);
if (r < 0)
uint64_t b = a + 1, c;
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