《C++的十万个为啥》:[21]分别用extern和static关键字修饰的变量是什么意思
《C++的十万个为什么》:[21]分别用extern和static关键字修饰的变量是什么意思?
原文来自:
http://chenlq.net/dev/cpp-why/21-were-used-to-extern-and-static-keywords-modified-variables-what-does-it-mean.html
Q:
在声明一些变量的时候,有些变量前加上了extern关键字,有些加上了static关键字,加上这些关键字是什么意思?
A:
如果是在变量前加上这两个关键字,其作用就是对变量的作用域和生命周期进行修饰。
首先谈谈他们对作用域的修饰(当然,这也会引起他们存储位置生命周期的变化)。
对于全局变量而言,static关键字是将这个全局变量的作用范围限定在当前源文件之内,而extern关键字则是表示这里引用的是一个已经定义在其它源文件中的同名全局变量。他将一个全局变量的作用范围扩展到了一个源文件扩展(extern)到了另外一个源文件。
参考以下节选自《C程序设计伴侣》的内容:
与局部变量隶属于某个局部代码区域,只是在其局部作用域内可见不同,全局变量隶属于整个源文件,在整个源文件内可见。在定义的形式上,局部变量定义于某个由大括号“{}”所形成的局部代码区域之内,而全局变量这是直接定义在源文件中,不隶属于任何局部代码区域。例如:
阅读全文:
http://chenlq.net/dev/cpp-why/21-were-used-to-extern-and-static-keywords-modified-variables-what-does-it-mean.html
------解决方案--------------------
厉害,厉害!
原文来自:
http://chenlq.net/dev/cpp-why/21-were-used-to-extern-and-static-keywords-modified-variables-what-does-it-mean.html
Q:
在声明一些变量的时候,有些变量前加上了extern关键字,有些加上了static关键字,加上这些关键字是什么意思?
A:
如果是在变量前加上这两个关键字,其作用就是对变量的作用域和生命周期进行修饰。
首先谈谈他们对作用域的修饰(当然,这也会引起他们存储位置生命周期的变化)。
对于全局变量而言,static关键字是将这个全局变量的作用范围限定在当前源文件之内,而extern关键字则是表示这里引用的是一个已经定义在其它源文件中的同名全局变量。他将一个全局变量的作用范围扩展到了一个源文件扩展(extern)到了另外一个源文件。
参考以下节选自《C程序设计伴侣》的内容:
与局部变量隶属于某个局部代码区域,只是在其局部作用域内可见不同,全局变量隶属于整个源文件,在整个源文件内可见。在定义的形式上,局部变量定义于某个由大括号“{}”所形成的局部代码区域之内,而全局变量这是直接定义在源文件中,不隶属于任何局部代码区域。例如:
阅读全文:
http://chenlq.net/dev/cpp-why/21-were-used-to-extern-and-static-keywords-modified-variables-what-does-it-mean.html
------解决方案--------------------
厉害,厉害!