码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 四种作用域

时间:2016-08-12 23:43:11      阅读:1707      评论:0      收藏:0      [点我收藏+]

标签:

代码块作用域:

任何位于一对花括号之间是一个代码块,代码块内声明的标识符具有代码块作用域,嵌套代码块内,内部变量会屏蔽外部相同标示的标示符,非嵌套代码块,不会同时处于活动状态所以不会屏蔽。

int main()
{
	int value = 123;

	{
		int value = 456;
		printf("%d\n", value);
	}

	{
		int value = 789;
		printf("%d\n", value);
	}

	printf("%d\n", value);
}

123和456以及789是嵌套,会屏蔽123,456和789是非嵌套不互相影响。

  

文件作用域

所有在代码块之外声明的标识符都具有文件作用域,标示这些标识符,从声明之处到所在文件结尾都可以访问,当使用

#include

 包含头文件时,头文件内部的声明并不局限于头文件的文件尾,而是#include的文件尾。

 

原型作用域

指函数声明中的参数,为了防止参数名与程序其他部分名字冲突。事实上,唯一的冲突就是在一个原型中不止一次使用同一个名字。

 

函数作用域

特指goto语句的作用域,goto对函数内所有变量可见。

#include <stdio.h>

int main()
{
	char msg[] = "this is outer\n";
	label: 
		printf("%s\n", msg);
	{
		char msg[] = "this is inner\n";
		printf("%s\n", msg);
		goto label;
	}
}
会一直输出:
this is outer

  

C语言 四种作用域

标签:

原文地址:http://www.cnblogs.com/yangxunwu1992/p/5766757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!