Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <20240903080407.654@kylheku.com>
Deutsch   English   Français   Italiano  
<20240903080407.654@kylheku.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Kaz Kylheku <643-408-1753@kylheku.com>
Newsgroups: comp.lang.c
Subject: Re: Code guidelines
Date: Tue, 3 Sep 2024 15:10:50 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 75
Message-ID: <20240903080407.654@kylheku.com>
References: <vb6v1t$3b5mb$1@dont-email.me>
Injection-Date: Tue, 03 Sep 2024 17:10:50 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="009eeee9eb186b8e4806da932904b8ba";
	logging-data="3561056"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/qbxPdBAJMhrZ5Cbl37Hs/4tX7gVezfDs="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:B8QlgVBeyvY3PALowylMwpO/Qis=
Bytes: 2166

On 2024-09-03, Thiago Adams <thiago.adams@gmail.com> wrote:
> Witch style (F1, F2 ..) better represents the guidelines of your code?
>
>
> //The function f never returns nullptr
> int * f();
  ^^^^^^

Nope.

> void F1() {
 
>     int* p = f();
      ^^^^

Nope.

>
>     if (p == nullptr) {
>        assert(false);
>        return;
>     }
>     // using *p ...
> }
>
> void F2()
> {
>     int* p = f();
      ^^^

Nope.

>     assert(p != nullptr);
>     // using *p ...
> }
>
> void F3()
> {
>     int* p = f();
      ^^^^

Nope.

>     // using *p ...
> }
>
> void F4()
> {
>     int* p = f();

And nope.

The syntax of a declaration is, roughly, "specifier-list
comma-separated-declarators".

"int" is the specifier list, "*p" is the declarator.

Your style invites optical illusions like:

  int* a, b;  // two pointers?

  int *a, b;  // Nope: actually this.

In C, declarators are type-constructing expressions which (at least in
their basic, unadorned forms) resemble how the name will be used.

For instance when you see "int a[3], *p", you can
interpret it as saying that "the expressions a[3] and *p
shall have type int".


-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca