Deutsch English Français Italiano |
<875xsfdbhf.fsf@bsb.me.uk> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.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: No warning at implicit removal of const. Was: relearning C: why does an in-place change to a char* segfault? Date: Mon, 05 Aug 2024 02:06:36 +0100 Organization: A noiseless patient Spider Lines: 51 Message-ID: <875xsfdbhf.fsf@bsb.me.uk> References: <IoGcndcJ1Zm83zb7nZ2dnZfqnPWdnZ2d@brightview.co.uk> <20240801174026.00002cda@yahoo.com> <v8gi7i$29iu1$1@dont-email.me> <slrnvaorkl.34j6.candycanearter07@candydeb.host.invalid> <87zfpvfdk4.fsf@nosuchdomain.example.com> <v8ii17$2q5p1$1@dont-email.me> <87v80ig4vt.fsf@nosuchdomain.example.com> <v8jbvj$2vat1$1@dont-email.me> <87le1ed0dl.fsf@bsb.me.uk> <v8jp3f$321h8$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Mon, 05 Aug 2024 03:06:34 +0200 (CEST) Injection-Info: dont-email.me; posting-host="d2414c6952e13c70edf3b01ba5b91a78"; logging-data="344408"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/XxJHdwmm83lmIx7LP55/FQ/WKSLt4WBw=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:9jGg+7yrbdB2SuAxkUN3syYjKP0= sha1:yowepgLR8+9vdJmVc9bgN52S7kg= X-BSB-Auth: 1.1e294e084d4f66cceae2.20240805020636BST.875xsfdbhf.fsf@bsb.me.uk Bytes: 3057 "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes: > On 8/2/2024 3:29 PM, Ben Bacarisse wrote: >> "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes: >> >>> For some reason I had a sort of a habit wrt const pointers: >>> >>> (experimental code, no ads, raw text...) >>> https://pastebin.com/raw/f52a443b1 >>> >>> ________________________________ >>> /* Interfaces >>> ____________________________________________________________________*/ >>> #include <stddef.h> >>> >>> >>> struct object_prv_vtable { >>> int (*fp_destroy) (void* const); >>> }; >>> >>> >>> struct device_prv_vtable { >>> int (*fp_read) (void* const, void*, size_t); >>> int (*fp_write) (void* const, void const*, size_t); >>> }; >> Why? It seems like an arbitrary choice to const qualify some pointer >> types and some pointed-to types (but never both). > > I just wanted to get the point across that the first parameter, aka, akin > to "this" in C++ is a const pointer. Shall not be modified in any way shape > or form. It is as it is, so to speak: > > void foo(struct foobar const* const self); > > constant pointer to a constant foobar, fair enough? No. If you intended a const pointer to const object why didn't you write that? My point was that the consts seems to be scattered about without any apparent logic and you've not explained why. >>> ;^) >> Does the wink mean I should not take what you write seriously? If so, >> please ignore my question. > > The wink was meant to show my habit in basically a jestful sort of > way. Your habit of what? -- Ben.