KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Well, reading "a bit old" book ("The C programming language", second edition, by Dennis Ritchie), I came a cross the following: An external variable must be defined, exactly once, outside of any function; this sets aside storage for it. The variable must also be declared in each function that wants to access it and I was like - what?! "The variable must also be declared in each function that wants to access it". Then, I was shocked one more time: int max; /* ... */ int main() { extern int max; /* ... */ } And one more - what?! As far as I know (obviously, it's not much and far from enough), extern makes sense only when you define a global variable somewhere and you want to access it through another file (not to define it again). So: What's the point of this extern int max inside the main or any other function? Does the standard really says, that this is a must (that I need to declare, for this example, this max in each function, that will use it?) Is this the same for C++ (that's why I placed the C++ tag)? This is the first time I see something like this. Note: this is not the same as What is the use of declaring a static variable as extern inside a function?
Tags (comma-separated)
Save Edits
Cancel