I hate to note this as a compiler construct to you, but... compilers are set up Lvalue . Even the bit slice engines in microcode. And I've used a lot of them over the last 40 years. I *have* seen some brutal code generation on particular architectures that weren't really set up for C (C was designed for PDP machines and most of the constructs map directly to machine instructions there -- ARM does a good job of replicating that), but unless you've got a particularly bad compiler, this wasn't one of the places that make a difference. Generally speaking the early programmers were mathematicians and so writing code in number line order was more normal (e,g (0,15] code equivalent notation). These days there's a lot more programmers out there that aren't mathematicians and so wouldn't have this innate sense of notation. I even see some modern code (not in this code base) that doesn't use vector notation (i,j,k) in loop variables. I have a cousin who grew up in Oslo. When he'd go back to the ancestral place in Telemark, his grandfather would accuse him of speaking Danish.
↧