Describe about storage allocation and scope of global, extern, static, local and register variables?

Describe about storage allocation and scope of global, extern, static, local and register variables? 


Globals have application-scope. They’re available in any compilation unit that includes an appropriate declaration (usually brought from a header file). They’re stored wherever the linker puts them, usually a place called the “BSS segment.” Extern? This is essentially “global.” 

Static: Stored the same place as globals, typically, but only available to the compilation unit that contains them. If they are block-scope global, only available within that block and its subblocks. 

Local: Stored on the stack, typically. Only available in that block and its subblocks. (Although pointers to locals can be passed to functions invoked from within a scope where that local is valid.) 

Register: See tirade above on “local” vs. “register.” The only difference is that the C compiler will not let you take the address of something you’ve declared as “register.”

Comments

Popular posts from this blog

JAD Advantages and Disadvantages

What is JAD and how are users involved? What are advantages and disadvantages of JAD?

According to Hero (1992), how are the three major theories of government compared in their ability to help explain the relative position of racial and ethnic groups in US politics? Do you agree that the theory of two-tiered pluralism is better than the other two in explaining the Latino (and other nonwhite) position in the post-1965 era?