Why not allow empty code blocks?
BartC
bc at freeuk.com
Tue Jul 26 06:11:20 EDT 2016
On 26/07/2016 08:21, Gregory Ewing wrote:
> BartC wrote:
>> (Yes everyone uses T*a (pointer to T) instead of T(*a)[] (pointer to
>> array of T), because, thanks to how C mixes up deferencing and
>> indexing, the former can be accessed as a[i] instead of (*a)[i].
>>
>> But it's wrong, and leads to errors that the language can't detect.
>> Such as when a points to a single element not a block:
>
> This is an implementation issue, not a language issue.
> A sufficiently pedantic implementation could and would
> detect this kind of error at run time. Most implementations
> of C are not that pedantic, but you can't blame the
> language for that.
(No, it's a language issue. Yes you might be able to have a sufficiently
complex (and slow) implementation that at best could detect errors at
runtime, but that's not much help.
It boils down to this: if you have a pointer type T*, does it point to a
standalone T object, or to an array or block of T objects?
The language allows a pointer P of type T* pointing to a single T object
to be accessed as P[i]. Apparently this is not seen as a problem...
(More observations about C here:
https://github.com/bartg/langs/blob/master/C%20Problems.md))
--
Bartc
More information about the Python-list
mailing list