|
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 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.