D demonP Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #1 我想,text肯定不是它所说的常量对象吧,我可以修改它的,难道是EDIT1?似乎是 所有PUBLISHED的对象都有这个现象,但我好象没发现OP有这样的规定啊!
L lukee Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #5 edit1.text 只能做为值传递,好像它的地址是随机的,你可以先赋值给一个变量, 用变量处理完毕后,再赋值给edit1.text
N NoSwing Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #6 问题应该是这样的,text是一个属性,属性对应的是一个方法,也就是一个函数的入口地址,当使用读方法时 函数的结果在栈中返回,也就是这个地址是不确定的,甚至可能在寄存器中,编译器无法为一个不确定的地址生成 你要的代码
问题应该是这样的,text是一个属性,属性对应的是一个方法,也就是一个函数的入口地址,当使用读方法时 函数的结果在栈中返回,也就是这个地址是不确定的,甚至可能在寄存器中,编译器无法为一个不确定的地址生成 你要的代码
P Pan Ying Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #7 同意楼上, Text是用property定义的,不是一个指,是由函数返回值的。
N netameng Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #8 同意楼上,变量的地址是在编译时由编译程序决定的,对于一个属性来说,无法直接做为一个 变量传递。
D demonP Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #11 谢谢NoSwing和其他的朋友,我想我明白了,简单的说是因为函数的返回值不能出现在 等号左边(也就是左值),它是一个常量,可以这么理解吧?因为很明显,调用完后栈会 清除,返回值自然也就无效了。 还有,既然各位高手提到了一些编译方面的内容,我想顺便请教一下,对于形如: proc1(proc2(...),v1,v2...) 的调用,在调用过程中栈的情况是怎么样的呢? 我想首先是应该调用PROC2,紧接着调用PROC1,我想知道的是PROC2的返回值是不是 有个什么临时的变量储存着呢?应该不能只靠栈来存储,因为PROC1一调用,栈的内容就 会改变了。 对不起,问了这么多问题,却只有30分,XIXI ,大富翁怎么没有EXPERTEXCHANGE的调整 分数的功能。
谢谢NoSwing和其他的朋友,我想我明白了,简单的说是因为函数的返回值不能出现在 等号左边(也就是左值),它是一个常量,可以这么理解吧?因为很明显,调用完后栈会 清除,返回值自然也就无效了。 还有,既然各位高手提到了一些编译方面的内容,我想顺便请教一下,对于形如: proc1(proc2(...),v1,v2...) 的调用,在调用过程中栈的情况是怎么样的呢? 我想首先是应该调用PROC2,紧接着调用PROC1,我想知道的是PROC2的返回值是不是 有个什么临时的变量储存着呢?应该不能只靠栈来存储,因为PROC1一调用,栈的内容就 会改变了。 对不起,问了这么多问题,却只有30分,XIXI ,大富翁怎么没有EXPERTEXCHANGE的调整 分数的功能。
D demonP Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-07 #12 对不起,分数有限,只能给NOSWING大侠了,其他的朋友只能说声谢谢了, 还请以后多多指教
N NoSwing Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-07 #13 谢了! 你上面的问题说的也有道理。 不过Proc2调用后直接将结果,压入栈中,proc1 直接使用,应该是最合理的。这次不要分数了,给别人吧。