Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #124024
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: NULL as the empty string |
| Date | 2017-12-08 13:03 -0800 |
| Organization | None to speak of |
| Message-ID | <lnzi6trkxz.fsf@kst-u.example.com> (permalink) |
| References | <ov2an8$7sq$1@dont-email.me> <lny3mzte7w.fsf@kst-u.example.com> <0f96b837-7b9a-435f-81ec-8bbc8d2f928b@googlegroups.com> <ln7etxt4ox.fsf@kst-u.example.com> <p0etae$tqd$1@dont-email.me> |
jacobnavia <jacob@jacob.remcomp.fr> writes:
> Le 08/12/2017 à 20:11, Keith Thompson a écrit :
>> John Bode <jfbode1029@gmail.com> writes:
>>> On Tuesday, November 21, 2017 at 5:16:29 PM UTC-6, Keith Thompson wrote:
>>>> jacobnavia <jacob@jacob.remcomp.fr> writes:
>>>>> Whaat would happen if we decide to give meaning to NULL?
>>>>
>>>> NULL (more precisely a null pointer) has a meaning. It's a pointer
>>>> value that doesn't point to anything.
>>>
>>> I think I get what Jacob is getting at - instead of NULL being a macro
>>> that expands to a 0, have it be a special keyword with special,
>>> context-dependent semantics. That is, a call against strlen or strcmp
>>> with NULL would be interpreted differently by the compiler, which
>>> would emit code that immediately returned a 0 or false result, without
>>> having to actually evaluate anything, or store an actual empty string
>>> or pointer to an empty string.
>>
>> That wasn't the impression I got at all. I thought jacob was advocating
>> giving a null pointer value a special meaning, so that either
>> strlen(NULL)
>> or
>> strlen(0)
>> or
>> char *ptr = 0;
>> strlen(ptr)
>> would return 0 (rather than having undefined behavior, as it currently
>> does). I didn't think he was talking about giving the NULL macro a
>> special meaning distinct from being a null pointer constant.
>>
>> jacob, would you care to comment?
>>
>> [...]
>
> NULL is an empty string, it has no data and needs no space to represent
> it. Instead of crashing at the sight of a NULL pointer, strlen returns
> zero since there is nothing there.
To be clear, this is what you're proposing, not what the C standard
currently says.
> The concept of nothing (zero) is fairly recent in maths, several
> centuries only. I just thought that the best way to represent nothing in
> a software system is zero, onbviously, (also known as NULL in this part
> of tyhe world where "C" lives).
[SNIP]
None of this answers the question I was trying to ask.
John Bode suggests that you were proposing making the macro NULL
mean something other than just a null pointer constant. I assumed
that you were using the term NULL as a shorthand for a null pointer
value, though on re-reading your previous post I'm not entirely
clear on that point.
You propose that strlen(NULL) should return 0 (rather than having
undefined behavior as it currently does). Does your proposal apply
only to code that uses the NULL macro, or would strlen() return
0 for any null pointer argument? Would strlen(0), which passes a
null pointer value to strlen *without* referring to the NULL macro,
be required to return 0 under your proposal?
[...]
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-21 23:52 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-11-21 15:16 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 00:38 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-11-21 16:02 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 01:13 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-11-21 16:52 -0800
Re: NULL as the empty string Robert Wessel <robertwessel2@yahoo.com> - 2017-11-21 18:09 -0600
Re: NULL as the empty string Siri Cruise <chine.bleu@yahoo.com> - 2017-11-21 16:34 -0800
Re: NULL as the empty string David Brown <david.brown@hesbynett.no> - 2017-11-22 12:12 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-21 15:57 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 01:06 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-22 15:42 -0800
Re: NULL as the empty string Melzzzzz <Melzzzzz@zzzzz.com> - 2017-11-22 23:49 +0000
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-22 15:56 -0800
Re: NULL as the empty string Melzzzzz <Melzzzzz@zzzzz.com> - 2017-11-23 00:06 +0000
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-23 17:31 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-24 09:42 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-24 13:47 -0800
Re: NULL as the empty string Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-11-22 06:46 +0000
Re: NULL as the empty string John Bode <jfbode1029@gmail.com> - 2017-12-08 10:27 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 11:11 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-08 21:39 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 13:03 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-08 22:50 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 15:19 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-09 00:35 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 16:05 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-09 01:22 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 17:39 -0800
Re: NULL as the empty string John Bode <jfbode1029@gmail.com> - 2017-12-11 12:22 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-09 01:29 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-08 17:47 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-09 07:05 +0100
Re: NULL as the empty string David Brown <david.brown@hesbynett.no> - 2017-12-09 18:37 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-09 11:53 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-12 10:49 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-12 13:39 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-12 16:05 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-13 03:43 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-13 08:45 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-13 09:12 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-13 13:27 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-13 14:02 -0800
Re: NULL as the empty string asetofsymbols@gmail.com - 2017-12-13 14:58 -0800
Re: NULL as the empty string asetofsymbols@gmail.com - 2017-12-13 15:11 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-14 03:49 -0800
Re: NULL as the empty string mark.bluemel@gmail.com - 2017-12-14 04:05 -0800
Re: NULL as the empty string David Brown <david.brown@hesbynett.no> - 2017-12-14 13:09 +0100
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-14 05:02 -0800
Re: NULL as the empty string David Brown <david.brown@hesbynett.no> - 2017-12-14 14:54 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-14 07:38 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-14 09:50 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-14 09:20 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-14 09:53 -0800
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-14 12:57 -0800
Re: NULL as the empty string herrmannsfeldt@gmail.com - 2017-12-14 17:22 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-14 17:26 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-08 21:23 +0100
Re: NULL as the empty string Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-12-08 13:41 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-08 22:54 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-21 15:17 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 00:26 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-11-21 16:03 -0800
Re: NULL as the empty string "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-11-22 00:27 +0100
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 00:42 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-11-21 16:05 -0800
Re: NULL as the empty string herrmannsfeldt@gmail.com - 2017-12-06 22:33 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-07 12:04 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-07 23:20 +0100
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-07 15:04 -0800
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-11-21 15:28 -0800
Re: NULL as the empty string Thiago Adams <thiago.adams@gmail.com> - 2017-11-21 16:04 -0800
Re: NULL as the empty string Siri Cruise <chine.bleu@yahoo.com> - 2017-11-21 16:25 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-11-22 01:34 +0100
Re: NULL as the empty string bartc <bc@freeuk.com> - 2017-11-22 00:36 +0000
Re: NULL as the empty string Öö Tiib <ootiib@hot.ee> - 2017-11-21 23:07 -0800
NULL as the empty string asetofsymbols@gmail.com - 2017-11-23 22:23 -0800
Re: NULL as the empty string Geoff <geoff@invalid.invalid> - 2017-12-09 09:05 -0800
Re: NULL as the empty string Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-12-09 12:40 -0500
Re: NULL as the empty string gordonb.yj0bc@burditt.org (Gordon Burditt) - 2017-12-09 13:50 -0600
Re: NULL as the empty string Ian Collins <ian-news@hotmail.com> - 2017-12-10 08:59 +1300
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-09 12:22 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-11 01:42 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-10 19:20 -0800
Re: NULL as the empty string jacobnavia <jacob@jacob.remcomp.fr> - 2017-12-11 18:56 +0100
Re: NULL as the empty string Keith Thompson <kst-u@mib.org> - 2017-12-11 11:19 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-15 09:29 -0800
Re: NULL as the empty string Thiago Adams <thiago.adams@gmail.com> - 2018-01-05 08:28 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2018-01-05 09:37 -0800
Re: NULL as the empty string Thiago Adams <thiago.adams@gmail.com> - 2018-01-05 17:08 -0800
Re: NULL as the empty string supercat@casperkitty.com - 2017-12-15 09:18 -0800
csiph-web