Re:Modern C, Second Edition
by loeg on Wednesday September 18, 2019 @03:22PM
(#21008973)
Rarely does someone mean:
It's mostly useless to declare a variable that cannot be assigned. But very often people write
When they intended
[ Parent
| on HN ]
Re:Modern C, Second Edition
by JoachimSchipper on Thursday September 19, 2019 @08:44AM
(#21015614)
FWIW, I find that form quite useful for defining short aliases, e.g.
int *const current_foo = &items[i].bar.foo;
before some complicated manipulations on current_foo.(A decent (SSA-)optimizing compiler will produce identical code with and without the declaration.)
Yeah, this only works if you initialize at the same time as declaration. And as you say, without const, the same code is generated. All it prevents is accidental reuse of current_foo, which may have some value.
> It's mostly useless to declare a variable that cannot be assigned.
So all functional languages (where immutability is the default) are mostly useless?
If you declare a variable in this way in C, it can never be assigned. Not once — zero times.
What is or is not good practice in C has little bearing on or relationship to functional languages, so I'm not sure why you bring them up in this context.