📜  在C中重新声明全局变量

📅  最后修改于: 2021-05-26 02:38:23             🧑  作者: Mango

请考虑以下两个程序:

// Program 1
int main()
{
   int x;
   int x = 5;
   printf("%d", x);
   return 0; 
}

在C中的输出:

redeclaration of ‘x’ with no linkage
// Program 2
int x;
int x = 5;
  
int main()
{
   printf("%d", x);
   return 0; 
}

在C中的输出:

5

在C语言中,第一个程序编译失败,但是第二个程序运行正常。在C++中,两个程序都无法编译。


当第一次声明未初始化全局变量时,C允许再次声明全局变量。

下面的程序在C语言中都失败了,因为全局变量是在第一个声明本身中初始化的。

int x = 5;
int x = 10;
  
int main()
{
   printf("%d", x);
   return 0;
}

输出:

error: redefinition of ‘x’
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。