This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Compiled object size

I have a few source files in which some const variables are required (same for all of those source file).

In the provided framework there is a .hpp header file that includes definitions (not only declarations) of those variables and this header is included in my source files mentioned before.

Then I realized, that each of my source files contains a copy of that RO data const variable, so in order to reduce memory footprint I made one more .hpp that is included in my source files and which contains extern references to those variables (included somewhere else) without actual variables.

I compared build .o object information provided below:

(note: RW, ZI removed)

Not using externs, using actual variables:

Code: 1192

(inc. data): 84

RO Data: 144

Using externs without actual variables:

Code: 1392

(inc. data): 216

RO Data: 144

1) Why code size increased?

2) Why inc. data increased?

3) In this case, why RO (const data) size didn't change?

4) What is inc. data in this scope?

0