Deutsch   English   Français   Italiano  
<20240709110019.00004d6d@yahoo.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: Michael S <already5chosen@yahoo.com>
Newsgroups: comp.lang.c
Subject: Re: question about nullptr
Date: Tue, 9 Jul 2024 11:00:19 +0300
Organization: A noiseless patient Spider
Lines: 53
Message-ID: <20240709110019.00004d6d@yahoo.com>
References: <v6bavg$3pu5i$1@dont-email.me>
	<20240706054641.175@kylheku.com>
	<v6bfi1$3qn4u$1@dont-email.me>
	<l9ciO.7$cr5e.2@fx05.iad>
	<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>
	<20240708194600.781@kylheku.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 09 Jul 2024 09:59:55 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="563505b595a11e4e07a72bd290784cde";
	logging-data="1383167"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+vo5ARTTbu28mYBlj6n53o60yTq8fC1j4="
Cancel-Lock: sha1:73ivDH+LRCdiM5gGFA0dCL+v96I=
X-Newsreader: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-w64-mingw32)
Bytes: 3059

On Tue, 9 Jul 2024 02:49:49 -0000 (UTC)
Kaz Kylheku <643-408-1753@kylheku.com> wrote:

> On 2024-07-08, Michael S <already5chosen@yahoo.com> wrote:
> > On Sun, 07 Jul 2024 15:17:34 -0700
> > Keith Thompson <Keith.S.Thompson+u@gmail.com> 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'.
> > Floating point: I never use 0.0.  
> 
> Never say never!
> 
>   printf("%f\n", 0);   // undefined behavior.
>   printf("%f\n", 0.0); // correct
>

Yes, but that's extremely rare that I want constant (except string
literal) as variable argument to printf().

> If you're #define-ing a floating-point constant that has
> no fractional part, you should put that .0 there.
>

I am trying hard to avoid #define-ing floating-point constants.
In rare cases where it is not avoidable, most often the constant does
have fractional part. I am not sure what I would prefer when I can't
avoid #define-ing and the constant has no fractional part. Will I write
something like '#define ANSWER ((double)42)' or (42.0) ?
It depends on the mood of the minute.

> Someone's going to pass your constant as a variadic argument,
> where it doesn't convert to floating-point.
> 
> Also:
> 
>   1/3   -> 0
>   1/3.0 -> 0.33333...
> 
> If you're #define-ing a floating point constant that has
> no fractional part, and don't include the .0, and the
> programmer uses it as a division denominator thinking that
> it's a floating-point quantity, oops!
>