好吧,阅读“有点老”的书(Dennis Ritchie 的“The C programming language”,第二版),我遇到了以下问题:
外部变量必须在任何函数之外只定义一次;这为其预留了存储空间。该变量还必须在每个想要访问它的函数中声明
我当时想 -什么?!
“还必须在要访问它的每个函数中声明该变量”。然后,我又震惊了一次:
int max;
/* ... */
int main()
{
extern int max;
/* ... */
}
还有一个——什么?!
据我所知(显然,这还远远不够),extern
只有当您在某处定义一个全局变量并且您想通过另一个文件访问它(而不是再次定义它)时才有意义。
所以:
- this或任何其他函数
extern int max
内部的意义何在?main
- 标准是否真的说,这是必须的(对于这个例子,我需要在每个函数中声明这个最大值,它将使用它?)
- 这对于 C++ 是否相同(这就是我放置 C++ 标签的原因)?这是我第一次看到这样的事情。