编译器和本地/全局变量

时间:2013-05-10 18:30:42

标签: variables pointers compiler-construction global local

编译器在何时区分局部变量和全局变量 将代码转换为指令序列?

其次我正确地认为常量存储在 指令集和字符串通过指向常量块的指针存储 记忆?

1 个答案:

答案 0 :(得分:1)

我相信您正在寻找的答案是编译器将局部变量范围限定为本地变量(例如,在函数中,函数中的变量将作用于函数;在类中,变量是范围到班级)。在全局变量的情况下,变量的范围是整个程序或系统,我已经看到这个术语使用了两种方式。

示例:

program P {
  variable myGlobal

  function F {
    variable myFunction
  }
}

在上面的例子中,myGlobal变量将作用于所有程序P,因此函数F将能够看到myGlobal。虽然myFunction只能在函数F中看到。

全局变量有时用于表示系统范围的变量(例如IP地址,操作系统版本......)。

范围是一个非常大的主题,您可能想查看有关该主题的维基百科条目:http://en.wikipedia.org/wiki/Scope_(computer_science)

这些也可能有所帮助:http://en.wikipedia.org/wiki/Global_variablehttp://en.wikipedia.org/wiki/Local_variable