C有本地绑定吗?

时间:2016-07-01 05:49:58

标签: c let

lispscheme等语言中,程序员可以使用let定义仅适用于某个本地范围的变量。例如,只在另一个函数中调用的函数。

是否有C等价物?

2 个答案:

答案 0 :(得分:1)

在C中,变量是它们所包含的wrap {}括号范围的局部变量。这在C ++和Java中是相同的。

如果变量是在函数之外定义的,那么它对该模块是全局的,并且可以通过添加“extern”来在其他模块中引用。在从想要使用它的模块中的另一个模块引用变量之前的前缀。

如果在功能之外定义了变容器,并且具有“静态”功能。然后它只是那个模块的全局。

当我说模块时,这意味着包含在同一源文件中的所有内容。 Java不支持全局变量,但它支持静态类变量,它几乎与全局变量相同。

答案 1 :(得分:-1)

简单地说,如果你想变量“count”有自己的范围:

void test()
{

    int input;  //input is usable in function test() 
    ...

    {
        int count;  //count only usable in scope {}
        ...
    }
}