What's the best way to minimize the need of run time checks?

Christian Gollwitzer auriocus at gmx.de
Mon Aug 29 09:07:19 EDT 2016


Am 29.08.16 um 14:46 schrieb Steve D'Aprano:
>> On Mon, Aug 29, 2016 at 10:13 PM, BartC <bc at freeuk.com> wrote:
>>> In C, you can write this:
>>>
>>>  int x;
>>>
>>>  x = 5;
>>>  x = "hello";

> Let me see if I've got this straight... Bart's second assignment will
> allocate a block of memory at least five bytes in size, stuff the ASCII
> codes for 'h', 'e', 'l', 'l' and 'o' in that block (possibly with a null
> byte at the end?) and then assign x to the address of that block.
>
> Am I right?

Almost - the block of memory is statically allocated, i.e. there is a 
block of memory reserved for "constants" that are loaded on start-up of 
the program. x is assigned a pointer to that string. The difference is 
that you are not allowed to write to this memory area, for some 
compilers it causes a segfault if you try to write there.

YMMV - I consider this a gross abuse of "dark corners" in C.

	Christian



More information about the Python-list mailing list