Re: New draft version of o65 file format

From: Spiro Trikaliotis (ml-cbmhackers_at_trikaliotis.net)
Date: 2005-04-01 14:14:56

Hello Gabor,

* On Fri, Apr 01, 2005 at 01:36:01PM +0200 Gabor Lenart wrote:
 
> Hmmm, anyway I would NEVER use an uninitialized variable whatever even
> not-exactly-compatible standards say between multiple
> architectures/compilers :) Also some compilers dump warning message if
> you try this. And I bet it's a good advice to avoid this madness also
> ...

No, it is not madness. In fact, I have not found a compiler which does
not behave this way for very long. I'm not sure if I ever have seen a
compiler which did not behave this way.

Let's look at this:

[abc.c]

int global_init = 1;
int global_uninit;

void func(void)
{
   int local_init = 1;
   int local_uninit;
}

In this case, only local_uninit has an arbitrary value, and most
compiler will (most hopefully) warn if you use it before you initialize
it. OTOH, global_uninit has to be set to 0 (specified by the standard),
thus, you can use it whenever you like. Personally, I find it a good
habit to initialize it to 0 anyway, but this is not necessary.

BTW: It would be very hard for a compiler to warn about using
global_uninit without initializing it, because the compiler would have
to analyze the complete program in the general case.

Regards,
   Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.