Deutsch English Français Italiano |
<20241001134139.619@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, 1 Oct 2024 21:39:21 -0000 (UTC) Organization: A noiseless patient Spider Lines: 36 Message-ID: <20241001134139.619@kylheku.com> References: <vb6v1t$3b5mb$1@dont-email.me> <vb726n$3b4rq$1@dont-email.me> <vb736j$3b5mb$2@dont-email.me> <vb75g9$3bntp$1@dont-email.me> <vb77tn$3bu07$3@dont-email.me> <vb7d6l$3d5mv$1@dont-email.me> <vdgjkc$2mhpi$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 01 Oct 2024 23:39:22 +0200 (CEST) Injection-Info: dont-email.me; posting-host="522f7606726274378d45f3c566bfa2c1"; logging-data="3050697"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Rh/Ckub8ksNmDJVILvjn+SKFhU1h4lZU=" User-Agent: slrn/pre1.0.4-9 (Linux) Cancel-Lock: sha1:osFrqtjf38Cc4A7R4mRNUyJwAYc= Bytes: 2180 On 2024-10-01, Vir Campestris <vir.campestris@invalid.invalid> wrote: > On 03/09/2024 17:23, Thiago Adams wrote: ><snip> >> but...maybe, is better to be a little redundant here? >> I think I prefer to leave "obj->member1->member2 && " even if I know >> it should not be null. >> >> if (obj->member1 && >> obj->member1->member2 && >> obj->member1->member2->member3) >> { >> >> } > > I think I'd prefer to _omit_ the check that obj->member1->member2 isn't > null. > > If the code is running correctly that check will never trigger, and is > redundant, and will slow things slightly. How about: #define vassert(x) (assert(x), 1) if (obj->member1 && vassert(obj->member1->member2) && obj->member1->member2->member3) If NDEBUG is defined, that just reduces to 1, and is optimized away. If NDEBUG is absent, the null pointer crash is replaced by an assertion failure. -- TXR Programming Language: http://nongnu.org/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal Mastodon: @Kazinator@mstdn.ca