Path: eternal-september.org!news.eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Michael S Newsgroups: comp.lang.c Subject: Re: question about nullptr Date: Tue, 9 Jul 2024 15:50:14 +0300 Organization: A noiseless patient Spider Lines: 55 Message-ID: <20240709155014.000039d0@yahoo.com> References: <20240706054641.175@kylheku.com> <877cdyuq0f.fsf@bsb.me.uk> <2ckiO.19403$7Ej.4487@fx46.iad> <87plrpt4du.fsf@bsb.me.uk> <9bCiO.7108$sXW9.3805@fx41.iad> <877cdwu9s1.fsf@nosuchdomain.example.com> <20240708222804.00001654@yahoo.com> <20240709104848.00005732@yahoo.com> <86cynmajh9.fsf@linuxsc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Injection-Date: Tue, 09 Jul 2024 14:49:50 +0200 (CEST) Injection-Info: dont-email.me; posting-host="563505b595a11e4e07a72bd290784cde"; logging-data="1383167"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19MZ1OvKqLufLb28NSnwGoJV7Tq3DmTxbI=" Cancel-Lock: sha1:JdAfybe70D5WJNoZD6ulrWL1VMo= X-Newsreader: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-w64-mingw32) On Tue, 09 Jul 2024 04:32:50 -0700 Tim Rentsch wrote: > Michael S writes: > > > On Mon, 8 Jul 2024 15:23:47 -0700 > > "Chris M. Thomasson" wrote: > > > >> On 7/8/2024 12:28 PM, Michael S wrote: > >> > >>> On Sun, 07 Jul 2024 15:17:34 -0700 > >>> Keith Thompson wrote: > >>> > >>>> I just about always use NULL, not 0, when I want a null pointer > >>>> constant. Similarly, I use '\0', not 0, when I want a null > >>>> character, 0.0 when I want a floating-point zero, and false when > >>>> I want a Boolean zero. I just like being explicit. > >>> > >>> Pointer: I very rarely use NULL. > >>> Character: I never use '\0'. > >> > >> Not even something like: > >> > >> #define CLINE 128 > >> > >> char x[CLINE] = { '\0' }; > >> > >> ? > >> > >> ;^) > > > > I see nothing special about your case. {0} is the most appropriate. > > > > Any use of '\0' almost always strikes me as an affectation. It's > like people want to somehow pretend that it's not the same as > just 0. > > > And, BTW, I never use #define for integer constants. > > What do you do if you need to define a compile-time constant > whose value is outside the range of signed int? With the > understanding that the context is C as it is now, and not > C++ or some imagined other language. In comment above "integer constant" meant "within the range of signed int". But let's accept more general meaning. Then, when it happens, I have a problem and forced to flex my principles :( Luckily, it's pretty rare. I mean, it's pretty rare that the constant is both outside the range of signed int and I really really have to have it as compile-time constant. More often big numbers like these are used in arithmetic/logic, so 'const wide_type' or 'static const wide_type' is practically as good as a "real" compile-time constant despite being "less constant" in theory.