在电脑程序设计中,作用域(scope,或译作有效范围)是名字(name)与实体(entity)的绑定(binding)保持有效的那部分计算机程序。不同的编程语言可能有不同的作用域和名字解析。而同一语言内也可能存在多种作用域,随实体的类型变化而不同。作用域类别影响变量的绑定方式,根据语言使用静态作用域还是动态作用域变量的取值可能会有不同的结果。
名字空间是一种作用域,使用作用域的封装性质去逻辑上组群起关相的众识别子于单一识别子之下。因此,作用域可以影响这些内容的名字解析。
程序员常会缩进他们的源代码中的作用域,改善可读性。
下列例子显示了C++语言中多种不同的作用域声明:
namespace N{ // 命名空间作用域,仅是群组织别名 class C { // 类作用域,定义/声明成员变量和函数 void f (bool b) { // 函数作用域,包含可执行语句 if (b) { // 条件执行语句的无名作用域 ... } } };}