CWilt@xxxxxxxxxxxx wrote:
> 
> If I've got a standard include that defines a bunch of constants, based or
> not based data structures what happens when most of it is not referenced in
> a given program/module?
> 
> I assume the compiler throws away the unused stuff, so you are not wasting
> space.
> 
> Can anyone confirm this?  Does the behavior depend on debug level or
> optimization level?
> 

Constants are thrown away if they are not used.  If they are used, they
may actually cause zero or more "things" to be generated.  For example,
say you have named constant ONE with the value 1.  If you used this in
an expression
   ONE + 2
the compiler would generate a constant with the value 3.  This is
"constant folding"; folding of constant expressions into a single
constant.

If you used it like this:
   eval   someInt = ONE
   eval   somePacked = ONE
the compiler might generate two constants, an integer and a packed value
with the value 1.

Unused based variables don't cause any storage to be declared (beyond
the basing pointer), but they do cause debug information to be
generated.

Unused non-based variables get both declared storage and debug
information.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.