Deutsch English Français Italiano |
<877cdyuq0f.fsf@bsb.me.uk> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse <ben@bsb.me.uk> Newsgroups: comp.lang.c Subject: Re: question about nullptr Date: Sat, 06 Jul 2024 23:14:40 +0100 Organization: A noiseless patient Spider Lines: 49 Message-ID: <877cdyuq0f.fsf@bsb.me.uk> References: <v6bavg$3pu5i$1@dont-email.me> <20240706054641.175@kylheku.com> <v6bfi1$3qn4u$1@dont-email.me> <l9ciO.7$cr5e.2@fx05.iad> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Sun, 07 Jul 2024 00:14:40 +0200 (CEST) Injection-Info: dont-email.me; posting-host="213b794f72069ae5495c2f80bfa9f0a2"; logging-data="4177794"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/4LAnj5ySZE+rOdv07EkmYeAE79S8xe54=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:hl35Ly73Bw1kSJ4BE3MAWD5Mn+8= sha1:GqTLW/jkzsPmhjPhRvAiehOm260= X-BSB-Auth: 1.7e2454d7d0e119041d86.20240706231440BST.877cdyuq0f.fsf@bsb.me.uk Bytes: 2748 scott@slp53.sl.home (Scott Lurndal) writes: > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes: >>On 06.07.2024 14:54, Kaz Kylheku wrote: >>> On 2024-07-06, Thiago Adams <thiago.adams@gmail.com> wrote: >>>> If you were creating C code today and could use a C23 compiler, would >>>> you use nullptr instead of NULL? >>> >>> In greenfield projects under my dictatorship, I use 0, as in: >>> >>> char *p = 0; >>> >>> I was still 20 something when I (easily) wrapped my head around the 0 >>> null pointer constant, and have not had any problems with it. >>> Once I learned the standard-defined truth about null pointer constants, >>> and their relationship to the NULL macro, I dropped NULL like a hot >>> potato, and didn't look back (except when working in code bases that use >>> NULL). >> >>We also used 0 as "universal" pointer value regularly without >>problems. I also like to use 0, but I'm not sure I could say exactly why. Maybe because of pre-C exposure (B and BCPL). > Whereas I spent 6 years programming on an architecture[*] where a > null pointer was represented in hardware by the value 0xc0eeeeee. I always > use the NULL macro in both C and C++ code. I'm sure you know (but maybe some other readers might not) that that does not stop one using 0 in C source code. Whatever a null pointer "really" is on some hardware, 0 must work in C, including in comparisons with == and !=. You can have void *ptr = 0; if (ptr == 0) ... being true and also memcmp(&ptr, &(union { unsigned int u; void *p; }){ .u=0xc0eeeeee }.p, sizeof ptr) == 0 being true. > [*] now obsolete. -- Ben.