On Wed, 2008-09-17 at 18:26 +0530, Sunil wrote:
[...]
> This may not exactly be a kernel question, but giving a try.

Yes, it's a pure C question.

> static variables if defined inside a function, it is defined once and
> retain values across function calls, so its like global variable in
> this sense. But it is not exposed to other functions and they can

ACK.

>  define local variable of the same name[or for that matter, there can

ACK.

>  also be a global variable of the same name, in which case most
> 'nearly defined' variable will be used].

ACK.

> My query is, where is static variable stored ? in code section, in

Usually in the same segment as (default) global variables (as it is -
from the lifetime's perspective identical).

>  which case this should be available to other functions too. On

The code section is usually read-only mapped so that won't work (unless
it is declared "const" etc. etc.).

>  stack ? How is it managed ?

"available to other functions" has two different meanings here:
- logical address: since other functions don't know the symbol of that
variable, they can't access it directly. But you can pass a pointer to
that variable e.g. as a result and so others may use it.
- physical access: if one happens to know the address (e.g. through a
pointer as mentioned above), of course one can access it.

        Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to