对变量的行为感到困惑 - 页 4 1234567 新评论 Mikhail Kozhemyako 2013.12.19 23:49 #31 wlad: 总的来说,我希望开发者能注意到 开发商与此有什么关系?你想让他们在他们的服务器上存储你的变量吗?当你的电脑因为停电而挂起和重启的时候? Sergey Guliaev 2013.12.20 06:33 #32 wlad: 自己测试一下吧。 你会看到这一切是怎么回事 我为你感到难过(()。 wladimir 2013.12.20 14:27 #33 你在说什么呢? 我还没有得到任何真正的答案。 事实是,有一个问题 Victor Nikolaev 2013.12.20 14:58 #34 真正的关节(在某人的头上) wladimir 2013.12.20 15:08 #35 Vinin: 真正的关节(在某人的头上) 你向我解释一下为什么会发生这种情况。 Victor Nikolaev 2013.12.20 15:11 #36 已经向你解释过了,你只是不想听别人的意见。 wladimir 2013.12.20 15:14 #37 Vinin: 已经向你解释过了,你只是不想听别人的意见。为什么 其中,当外部变量发生变化时,全局变量将采用其值。 wladimir 2013.12.20 15:16 #38 而且只发生在丁字裤上。 对于其他类型,它可以正常工作。 告诉我,我哪里错了。 wladimir 2013.12.20 16:07 #39 下面是一个比较字符串和ints行为的例子 extern string ValueString = "DDD"; extern int ValueInt = 10; string tempString=""; int tempInt=0; bool firsttime=true; int start() { string txt=StringConcatenate( " ValueString: ",ValueString," < >"," tempString: ",tempString,"\n", " ValueInt: ", ValueInt, " < >"," tempInt: ",tempInt,"\n", " firsttime: ",firsttime); if(firsttime) { // значение присваевается тольо ОДИН раз tempString=ValueString; tempInt=ValueInt; firsttime=false; } Print(txt); Comment(txt); } 并输出到日志。 1.加载EA和启动全局变量 2. 将外部变量转移到全局变量。通过bool firsttime实现一次性转移 3.外部变量的变化 4.这里可以看出区别。 tempString取ValueString的值-- 错误 tempInt保持其值,即使ValueInt已经改变 -正确 5和6与3和4相似 请解释为什么字符串的行为是不同的 而Int是正确的 请给我具体的答案。 Vladimir Gomonov 2013.12.20 17:36 #40 wlad: 请解释为什么字符串的行为是不同的 虽然这是事实。 我问的是具体的答案。 我不能说得很具体,我找不到这些链接。 我在论坛上的某个地方看到,当编译器检测到具有相同数值的字符串变量时,它会将它们放入相同的实际内存中,并向需要引用它的人引用它。 所以,你可能是对的,它们必须写在一个变量中。理论上,这可能是一个优化器的错误。写信给servicedesk,把你的例子和代码一起发过去,他们会解决这个问题。 这里也有重复的内容: MetaTrader 4 Build 529测试版与新的编译器已被发布 -- // 但根据我的经验,我从来没有遇到过无法解决的问题。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
总的来说,我希望开发者能注意到
开发商与此有什么关系?你想让他们在他们的服务器上存储你的变量吗?当你的电脑因为停电而挂起和重启的时候?
自己测试一下吧。
你会看到这一切是怎么回事
我为你感到难过(()。
你在说什么呢?
我还没有得到任何真正的答案。
事实是,有一个问题
真正的关节(在某人的头上)
已经向你解释过了,你只是不想听别人的意见。
为什么
其中,当外部变量发生变化时,全局变量将采用其值。
而且只发生在丁字裤上。
对于其他类型,它可以正常工作。
告诉我,我哪里错了。
下面是一个比较字符串和ints行为的例子
并输出到日志。
1.加载EA和启动全局变量
2. 将外部变量转移到全局变量。通过bool firsttime实现一次性转移
3.外部变量的变化
4.这里可以看出区别。
tempString取ValueString的值-- 错误
tempInt保持其值,即使ValueInt已经改变 -正确
5和6与3和4相似
请解释为什么字符串的行为是不同的
而Int是正确的
请给我具体的答案。
请解释为什么字符串的行为是不同的
虽然这是事实。
我问的是具体的答案。
我在论坛上的某个地方看到,当编译器检测到具有相同数值的字符串变量时,它会将它们放入相同的实际内存中,并向需要引用它的人引用它。
所以,你可能是对的,它们必须写在一个变量中。理论上,这可能是一个优化器的错误。写信给servicedesk,把你的例子和代码一起发过去,他们会解决这个问题。
这里也有重复的内容: MetaTrader 4 Build 529测试版与新的编译器已被发布
--
// 但根据我的经验,我从来没有遇到过无法解决的问题。