首页 > 其他 > 详细

extern的一点知识

时间:2014-03-25 08:36:58      阅读:518      评论:0      收藏:0      [点我收藏+]

extern.c

#include <stdio.h>
int main()
{
    extern int i;//测试与全局变量同名的局部变量是否可以被extern声明
    //int i = 11;
    printf("%d",i);
    int i = 11;
    getchar();
}

另一C文件如下:

extern1.c

int i = 12;

VS2012编译,出错:

1>c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(9): error C2086: “int i”: 重定义
1>c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(5) : 参见“i”的声明

结论:

  不能用extern将与全局变量同名的局部变量扩大范围

 

 

#include <stdio.h>

int main()
{
    extern int i;
    printf("%d",i);
    int i = 11;
    printf("\n %d",i);
    getchar();
}
int i = 12;

 

1>c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(7): error C2086: “int i”: 重定义
1>          c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(5) : 参见“i”的声明

 

#include <stdio.h>

int main()
{
    extern int i;
    printf("%d",i);
    int i = 11;
    printf("\n %d",i);
    getchar();
}
//int i = 12;

1>c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(7): error C2086: “int i”: 重定义
1>          c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(5) : 参见“i”的声明

 

#include <stdio.h>

int main()
{
    extern int i;
    printf("%d",i);
    //int i = 11;
    getchar();
}
int i = 12;

正确

 

#include <stdio.h>

int main()
{
    extern int i = 1;
    printf("%d",i);
    //int i = 11;
    getchar();
}
int i = 12;

1>c:\users\longtuoei\documents\visual studio 2012\projects\。。。\。。。\extern.cpp(5): error C2205: “i”: 不能对带有块范围的外部变量进行初始化

extern的一点知识,布布扣,bubuko.com

extern的一点知识

原文:http://www.cnblogs.com/liujinlong/p/3622129.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!