Hi , Which is best local or global variables wrt data memory ?I observed that XData size is getting reduced when I am replacing my global variable with local variable.is there any effect on internal data memory if I use local variable instead of global variables?and what about the performance? I am waiting for your valuable suggestions.. With Regards, Bhaskar Reddy bhaskar@blazeautomation.com
Can you first confirm that it really is a C251 you are using and not the C51 compiler.
Thakns for your reply, I am using p89v51RD2 micro controller and Keil software. With regards, Bhaskar
For how long does a global variable occupy its place in memory?
For how long does a local variable occupy its place in memory?
It would be worth you reading up on memory models.
http://www.keil.com/support/man/docs/c51/c51_le_memmodels.htm
Well now, if the local variable happens to be declared as static, then the lifetime will be the same.
Likewise, if the linker directive of NOOVERLAY is used, then the overall memory usage will be the same.
No?
"if the local variable happens to be declared as static, then the lifetime will be the same"
Correct - thus showing a flaw in the original question.
"if the linker directive of NOOVERLAY is used, then the overall memory usage will be the same"
Yes.
Or optimisation level below 2:
http://www.keil.com/support/man/docs/c51/c51_optimize.htm
Yes, you should be more careful in how you pose them next time.
Correct.
Which is best local or global variables wrt data memory ?
both are the best.
I was kinda hoping that the OP would realise the issue in his thinking, but you gave it away - so I doubt he'll be doing any thinking at all now.
OMG. I'm so tempted to say what I really think of what you wrote there, but I'll bite my tongue.
You believe the OP understood the nuances of what I wrote in response to your questions? genuinely?