给出以下C赋值语句:
c = d * 120;
什么是绑定时间:
一个。变量的类型c?
湾编写变量的约定规则?
℃。变量c?
的地址d。 operator *?
的含义即加载operator *的两个操作数的顺序?
我知道有6种可能的绑定时间:语言设计时间,语言实现时间,编译时间,加载时间,链接时间,运行时间。
我对上述问题的回答:
一个。编译时间
湾语言设计时间
℃。加载时间
d。编译时间
即语言设计时间
请你检查我的答案是否正确?谢谢:)。
答案 0 :(得分:4)
一个。编译时间。
B中。什么是“编写变量的常规规则”?在这种情况下,“惯例”是什么意思?
℃。特定答案的信息不足。在现代平台上,变量的“地址”由其在过程的[虚拟]地址空间中的位置确定。对于全局/静态变量,它在编译时或链接时确定(取决于您如何解释问题)以及变量的链接。对于自动变量,绝对地址在运行时确定,而堆栈帧内的相对地址在编译时是已知的。您没有提供有关变量的具体信息(全局?本地?),因此无法回答这个问题。
d。编译时间或语言设计时间,取决于此处“操作符的含义”的真正含义。算术运算符的数学含义由语言设计决定。在编译时选择了重载运算符的特定版本(例如int * int
vs double * double
)。
电子。这个问题比看上去更模糊。代码中加载指令的顺序将在编译时确定。但是,实际的物理负载可以在运行时由现代处理器重新排列。 “加载顺序”问题的含义是什么:列表中的加载指令的顺序或传输数据的物理运行时行为的顺序?