将代码转换为指令序列时,编译器如何区分局部变量和全局变量?
其次,我是否认为常量与指令集一起存储,而字符串通过指向常量内存块的指针存储?
将代码转换为指令序列时,编译器如何区分局部变量和全局变量?
其次,我是否认为常量与指令集一起存储,而字符串通过指向常量内存块的指针存储?
我相信您正在寻找的答案是编译器将局部变量的范围限定为它是局部的(例如,在函数中,函数中的变量将被限定为函数;在类中,变量被限定为班级)。在全局变量的情况下,变量的范围是程序或整个系统,我已经看到该术语以两种方式使用。
例子:
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_variable和http://en.wikipedia.org/wiki/Local_variable