[ 基本难度系数 ]:★★☆☆☆
一、基本概念
C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。
软件开发中,尽量缩小标识符的作用域是一项基本原则,一个标识符的作用域超过它实际所需要的范围时,就会对整个软件的命名空间造成污染,导致一些不必要的名字冲突和误解。
例子:
你在一个工程里,定义了一个全局变量int num,那么接下来工程里面所有的
区域,你都将要注意,定义变量时,不能和其产生冲突或者误解
二、函数声明作用域
- 概念:在函数的声明式中定义的变量,其可见范围仅限于该声明式。
- 要点:
-
- 变量 num1 和 num2 只在函数声明式中可见。
- 变量 num1 和 num2 可以省略,但一般不这么做,它们的作用是对参数的注解。
- 示例代码:
#include <stdio.h>
extern int func1(int num1, int num2); // 变量只作用在这一行
extern int func2(int, int); // 上面的语句可以写成这样,但一般不建议,因为变量名可以为我们提供参考
int main(int argc, char const *argv[])
{
num1 = 100;
/*
会报错:
main.c:18:5: error: ‘num1’ undeclared (first use in this function)
原因:
1、你真的没有定义这个变量num1
2、你定义了,但是num1变量,没能作用在你现