变量的声明与定义

来源:互联网 发布:linux grep正则表达式 编辑:程序博客网 时间:2024/05/16 13:03

在C语言中,变量的声明与定义.先说一个例子吧,
     

  1 #include <stdio.h>  2   3   4   5 int a;  6 int a;  7 int a;  8 int a;  9 int a = 0; 10 int main() 11 { 12     printf("%d\n", a); 13     return 0; 14 }
编译链接都不会出问题.运行也正常.
我实话实说,刚开始我也没理解.

这叫不显式的初始化,在C语言中(C++不是这样),则先假定为声明,多次声明是没有错的,最后那一个才是定义.
此操作在GCC编译器通过。
但是在windows的VS中或者cl命令中,编译是不通过的。
特此记录。
注:在文件.c中,变量的定义(实际是声明)而不初始化,那么多个.c可以出现重名,即多个.c中出现int a;的情况,编译器是不出现错误或者警告的。这就给团队协作带来了隐患,希望看到此文的人能够注意。

原创粉丝点击