RE: Are local variables initialised?

From: CFB Software <"CFB>
Date: Fri, 1 Oct 2004 12:07:39 +0930

----boundary-LibPST-iamunique-1350785153_-_-
Content-type: text/plain

> -----Original Message-----
> From: Hof, Philipp [mailto:p.hof{([at]})nowhere.xy
> Sent: Friday, 1 October 2004 10:38 AM
> To: 'blackbox{([at]})nowhere.xy
> Subject: Are local variables initialised?
>
>
> Hi all,
>
> In C local variables are not initialised.
> In C local structs are therefore often initialised with a macro like:
>
> ZeroMemory(&my_struct, sizeof(MY_STRUCT));
>
> How about Component Pascal? Are local variables, records
> (untagged) in Component Pascal initialised to zero by default?
>

Philipp,

The short answer to your question is no - with a couple of exceptions.

The initialisation of variables in Component Pascal is defined in
several sections of the Language Report:

-------------------------------------------------------
6.4 Pointer Types

All fields or elements of a newly allocated record or array are cleared,
which implies that all embedded pointers and procedure variables are
initialized to NIL.


10. Procedure declarations

Local variables whose types are pointer types or procedure types are
initialized to NIL before the body of the procedure is executed.

10.1 Formal Parameters

Like local variables, output parameters of pointer types and procedure
types are initialized to NIL. Other output parameters must be considered
as undefined prior to the first assignment in the procedure.

11. Modules

Variables declared in a module are cleared prior to the execution of the
module body. This implies that all pointer or procedure typed variables

are initialized to NIL.

-------------------------------------------------------

The Miscellaneous section in the What's New in Component Pascal document

specifically answers your question:

"Global variables, including heap variables allocated with NEW, now have
a defined initial value (FALSE, 0X, 0, 0.0, {}, NIL, ""). Local (i.e.,
stack) variables are not initialized, except for pointers and procedure
variables which are set to NIL for safety reasons."

-------------------------------------------------------

Regards,
Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp

--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1350785153_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1c
cGFyDQo+IEZyb206IEhvZiwgUGhpbGlwcCBbbWFpbHRvOnAuaG9mQGVsZWMuY2FudGVyYnVyeS5h
Yy5uel0gXHBhcg0KPiBTZW50OiBGcmlkYXksIDEgT2N0b2JlciAyMDA0IDEwOjM4IEFNXHBhcg0K
PiBUbzogJ2JsYWNrYm94QG9iZXJvbi5jaCdccGFyDQo+IFN1YmplY3Q6IEFyZSBsb2NhbCB2YXJp
YWJsZXMgaW5pdGlhbGlzZWQ/XHBhcg0KPiBccGFyDQo+IFxwYXINCj4gSGkgYWxsLFxwYXINCj4g
XHBhcg0KPiBJbiBDIGxvY2FsIHZhcmlhYmxlcyBhcmUgbm90IGluaXRpYWxpc2VkLlxwYXINCj4g
SW4gQyBsb2NhbCBzdHJ1Y3RzIGFyZSB0aGVyZWZvcmUgb2Z0ZW4gaW5pdGlhbGlzZWQgd2l0aCBh
IG1hY3JvIGxpa2U6XHBhcg0KPiAgXHBhcg0KPiBaZXJvTWVtb3J5KCZteV9zdHJ1Y3QsIHNpemVv
ZihNWV9TVFJVQ1QpKTtccGFyDQo+IFxwYXINCj4gSG93IGFib3V0IENvbXBvbmVudCBQYXNjYWw/
IEFyZSBsb2NhbCB2YXJpYWJsZXMsIHJlY29yZHMgXHBhcg0KPiAodW50YWdnZWQpIGluIENvbXBv
bmVudCBQYXNjYWwgaW5pdGlhbGlzZWQgdG8gemVybyBieSBkZWZhdWx0P1xwYXINCj4gXHBhcg0K
XHBhcg0KUGhpbGlwcCxccGFyDQpccGFyDQpUaGUgc2hvcnQgYW5zd2VyIHRvIHlvdXIgcXVlc3Rp
b24gaXMgbm8gLSB3aXRoIGEgY291cGxlIG9mIGV4Y2VwdGlvbnMuXHBhcg0KXHBhcg0KVGhlIGlu
aXRpYWxpc2F0aW9uIG9mIHZhcmlhYmxlcyBpbiBDb21wb25lbnQgUGFzY2FsIGlzIGRlZmluZWQg
aW5ccGFyDQpzZXZlcmFsIHNlY3Rpb25zIG9mIHRoZSBMYW5ndWFnZSBSZXBvcnQ6XHBhcg0KXHBh
cg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVxwYXINCjYuNCBQb2ludGVyIFR5cGVzXHBhcg0KXHBhcg0KQWxsIGZpZWxkcyBvciBlbGVtZW50
cyBvZiBhIG5ld2x5IGFsbG9jYXRlZCByZWNvcmQgb3IgYXJyYXkgYXJlIGNsZWFyZWQsXHBhcg0K
d2hpY2ggaW1wbGllcyB0aGF0IGFsbCBlbWJlZGRlZCBwb2ludGVycyBhbmQgcHJvY2VkdXJlIHZh
cmlhYmxlcyBhcmVccGFyDQppbml0aWFsaXplZCB0byBOSUwuXHBhcg0KXHBhcg0KMTAuIFByb2Nl
ZHVyZSBkZWNsYXJhdGlvbnNccGFyDQpccGFyDQpMb2NhbCB2YXJpYWJsZXMgd2hvc2UgdHlwZXMg
YXJlIHBvaW50ZXIgdHlwZXMgb3IgcHJvY2VkdXJlIHR5cGVzIGFyZVxwYXINCmluaXRpYWxpemVk
IHRvIE5JTCBiZWZvcmUgdGhlIGJvZHkgb2YgdGhlIHByb2NlZHVyZSBpcyBleGVjdXRlZC5ccGFy
DQpccGFyDQoxMC4xIEZvcm1hbCBQYXJhbWV0ZXJzXHBhcg0KXHBhcg0KTGlrZSBsb2NhbCB2YXJp
YWJsZXMsIG91dHB1dCBwYXJhbWV0ZXJzIG9mIHBvaW50ZXIgdHlwZXMgYW5kIHByb2NlZHVyZVxw
YXINCnR5cGVzIGFyZSBpbml0aWFsaXplZCB0byBOSUwuIE90aGVyIG91dHB1dCBwYXJhbWV0ZXJz
IG11c3QgYmUgY29uc2lkZXJlZFxwYXINCmFzIHVuZGVmaW5lZCBwcmlvciB0byB0aGUgZmlyc3Qg
YXNzaWdubWVudCBpbiB0aGUgcHJvY2VkdXJlLlxwYXINClxwYXINCjExLiBNb2R1bGVzXHBhcg0K
XHBhcg0KVmFyaWFibGVzIGRlY2xhcmVkIGluIGEgbW9kdWxlIGFyZSBjbGVhcmVkIHByaW9yIHRv
IHRoZSBleGVjdXRpb24gb2YgdGhlXHBhcg0KbW9kdWxlIGJvZHkuIFRoaXMgaW1wbGllcyB0aGF0
IGFsbCBwb2ludGVyIG9yIHByb2NlZHVyZSB0eXBlZCB2YXJpYWJsZXNccGFyDQphcmUgaW5pdGlh
bGl6ZWQgdG8gTklMLlxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1ccGFyDQpccGFyDQpUaGUgTWlzY2VsbGFuZW91cyBzZWN0
aW9uIGluIHRoZSBXaGF0J3MgTmV3IGluIENvbXBvbmVudCBQYXNjYWwgZG9jdW1lbnRccGFyDQpz
cGVjaWZpY2FsbHkgYW5zd2VycyB5b3VyIHF1ZXN0aW9uOlxwYXINClxwYXINCiJHbG9iYWwgdmFy
aWFibGVzLCBpbmNsdWRpbmcgaGVhcCB2YXJpYWJsZXMgYWxsb2NhdGVkIHdpdGggTkVXLCBub3cg
aGF2ZVxwYXINCmEgZGVmaW5lZCBpbml0aWFsIHZhbHVlIChGQUxTRSwgMFgsIDAsIDAuMCwgXHtc
fSwgTklMLCAiIikuIExvY2FsIChpLmUuLFxwYXINCnN0YWNrKSB2YXJpYWJsZXMgYXJlIG5vdCBp
bml0aWFsaXplZCwgZXhjZXB0IGZvciBwb2ludGVycyBhbmQgcHJvY2VkdXJlXHBhcg0KdmFyaWFi
bGVzIHdoaWNoIGFyZSBzZXQgdG8gTklMIGZvciBzYWZldHkgcmVhc29ucy4iXHBhcg0KXHBhcg0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxw
YXINClxwYXINClJlZ2FyZHMsXHBhcg0KQ2hyaXMgQnVycm93c1xwYXINCkNGQiBTb2Z0d2FyZVxw
YXINCmh0dHA6Ly93d3cuY2Zic29mdHdhcmUuY29tL2dwY3BccGFyDQpccGFyDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2Ny
aWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhl
IHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5j
aFxwYXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBp
bnN0cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhl
IHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHBy
b2JsZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8g
dGhlIGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpc
cGFyDQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNo
b3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8g
dGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6
ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHks
IHdpdGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29t
ZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3Ug
YXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBz
cGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBz
b21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheX19ACZteV9z
dA==


----boundary-LibPST-iamunique-1350785153_-_---
Received on Fri Oct 01 2004 - 04:37:39 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:35 UTC