Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/10/11 15:24
Read: times


 
#184615 - auto variables
Responding to: ???'s previous message
Lukas Valecky said:
Per Westermark said:
I think that the Keil C51 compiler/linker has some special handling for small initialized variables.

What does it mean for me?

It is the logic that reuses global variable space for parameters and auto variables that has optimizations depending on if the auto variable is small or large.

With global variables, the initialization comes directly by the runtime library, so no need for any optimization. All initialized data (independent of size) are just placed in consecutive memory positions, allowing the initialized values to be copied (after potentially being decompressed).

But local variables with initial values needs to be initialized on every visit to the function.

Consider if these variables really need to get new values on every call to the function or not.

List of 39 messages in thread
TopicAuthorDate
Keil problem...            01/01/70 00:00      
   Kel support            01/01/70 00:00      
      Keil support            01/01/70 00:00      
         Reward for finding bug            01/01/70 00:00      
            been tried            01/01/70 00:00      
               public bug tracker            01/01/70 00:00      
                  It's not a KEIL-specific problem ...            01/01/70 00:00      
                     not really            01/01/70 00:00      
                        It's those "snapshots" that I meant            01/01/70 00:00      
                           Not true            01/01/70 00:00      
                              Remember, where you sit determines what you see            01/01/70 00:00      
                                 Concept            01/01/70 00:00      
                                 I do not ...            01/01/70 00:00      
                                    Comfort contra mobile phone            01/01/70 00:00      
                                       Where you sit determines what you see ...            01/01/70 00:00      
                                          You are still assuming you know what other people think/do            01/01/70 00:00      
                                             You've overlooked the most basic fact ...            01/01/70 00:00      
                                                Unuseful toy?            01/01/70 00:00      
                                                   Once again, you've missed the point ...            01/01/70 00:00      
                                                      Look for progress, instead of just looking back at history            01/01/70 00:00      
                                                         are you that lucky?            01/01/70 00:00      
                                                            Yes            01/01/70 00:00      
                                                         Consider my position            01/01/70 00:00      
      keil update            01/01/70 00:00      
         auto variables            01/01/70 00:00      
   Global Variable Initiaization            01/01/70 00:00      
   just curious            01/01/70 00:00      
      Always good to hide black-box data in structs            01/01/70 00:00      
      Initialising array inside struct            01/01/70 00:00      
         not necessarily            01/01/70 00:00      
      Library            01/01/70 00:00      
   New facts...            01/01/70 00:00      
      At the very least use static for one-time initialized locals            01/01/70 00:00      
         it works! thanks...            01/01/70 00:00      
            Look at code in Debugger. It will tell all.            01/01/70 00:00      
               It's called "Overlaying"            01/01/70 00:00      
                  Optimization            01/01/70 00:00      
      are you sure ...            01/01/70 00:00      
   Thanks...            01/01/70 00:00      

Back to Subject List