Path: csiph.com!news.mixmin.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Are there any conformant C compilers? Date: Wed, 14 Sep 2022 11:06:51 -0700 Organization: None to speak of Lines: 51 Message-ID: <87fsgthltw.fsf@nosuchdomain.example.com> References: <87fsh9iz25.fsf@bsb.me.uk> <11d1020d-144d-4da0-88c1-3d56b4160c2an@googlegroups.com> <87pmgdh85z.fsf@bsb.me.uk> <878rn1h5lk.fsf@bsb.me.uk> <9586550c-6a4b-4a75-a10a-25f26e109b85n@googlegroups.com> <87tu5pfm0t.fsf@bsb.me.uk> <38331300-95c3-4499-aa89-062b82974309n@googlegroups.com> <87czccfyq0.fsf@bsb.me.uk> <86mtb5p6gd.fsf@linuxsc.com> <865yhrpcl9.fsf@linuxsc.com> <20220913082247.233@kylheku.com> <86leqmm319.fsf@linuxsc.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Info: reader01.eternal-september.org; posting-host="8fc111422276ca8204b941f03dd9cf79"; logging-data="3214206"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19J552CmwAAPeduWXZGQ+Og" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) Cancel-Lock: sha1:fBplcwP8/LEnnhoJDwIdvFgqKQA= sha1:IV1w3DDIoREWQMkVqZLZkLjxE98= Xref: csiph.com comp.lang.c:167724 Tim Rentsch writes: > Kaz Kylheku <480-992-1380@kylheku.com> writes: > >> On 2022-09-13, Tim Rentsch wrote: >> >>> Bart writes: >>> >>>> On 12/09/2022 05:22, Tim Rentsch wrote: >>>> >>>>> Ben Bacarisse writes: >>>>> >>>>>> Thinking about it a bit more, the common factor with all literals is >>>>>> that they represent /anonymous/ values. Without compound literals you >>>>>> could not write a value of any aggregate type, other than char[]. >>>>> >>>>> The key difference is that "constants" are values, and "literals" >>>>> are objects. >>>> >>>> So a literal like 726163 is an object, and not a value? >>> >>> As far as ISO C is concerned, the token '726163' is a constant, >>> not a literal, and is a value rather than an object. >> >> The term "literal" in computer science is a shortening of >> "literal constant". (There are also symbolic/manifest constants.) > > I am not aware of any authoritative reference that defines the > term "literal" for the field of computer science. > > In any case, my comments are only about how the terms "literal" > and "constant" are used in the ISO C standard. This newsgroup is > comp.lang.c, and I see nothing wrong in restricting the domain of > my remarks to just that of the C language. Sure, but plenty of people informally use the word "literal" to refer to constants. Even K&R2's reference manual says: The characters /* introduce a comment, which terminates with the characters */. Comments do not nest, and they do not occur within string or character literals. As much as I prefer to use the terminology defined in the standard, I have no real problem with referring to 42 or 'x' as a literal. I suggest that the "key difference" you see ("constants" are values, and "literals" are objects") is accidental. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for Philips void Void(void) { Void(); } /* The recursive call of the void */