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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/11/11 13:49
Read: times


 
#184634 - At the very least use static for one-time initialized locals
Responding to: ???'s previous message
main() is living for the full time of the application.

So why do you have large local variables in main(), that the compiler will then have to fight to try to convert into global (but nameless) variables just since the used processor do not support any hardware stack that can handle them?

I assume you are not going to call main() recursively, so just making them "static" makes a difference to the compiler/linker by telling it that the initialization can happen once - and at a time the compiler/linkers thinks is best - instead of having to happen after main() is reached but before the first C statement inside main() is run.

You are not programming a PC. You do not have access to 10kB or 1MB of stack space. The stack space available is just about enough to handle interrupts, and to handle the return address when returning back from a not too long chain of function calls.

Do you have any project management that have decided that you must not have global variables, making you "cheat" by having local variables in main() and then let the rest of the program access them through pointers?

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