mql5中的OOP、模板和宏,细微之处和用途 - 页 18 1...111213141516171819202122232425...28 新评论 Igor Makanu 2019.09.29 13:10 #171 fxsaber: #define p_func(NAME) Print(#NAME " = " ,NAME) //+------------------------------------------------------------------+ void OnStart() { int QWERTY=100; int zxcvbn=999; p_func(QWERTY); // QWERTY = 100 p_func(zxcvbn); // zxcvbn = 999 } //+------------------------------------------------------------------+ 它的工作原理! 谢谢你! Seric29 2019.10.23 03:18 #172 帮助我解决这个问题。有一个宏,我想在里面添加代码以返回结果。 #define FOR3(a,b,c,loop) {for(int i=0; i<a; i++)\ for(int j=0; j<b; j++)\ for(int k=0; k<c; k++)\ {loop;}/*код хочу дописать в этом месте и вернуть результат но эта штука работает только как void*/} 是否可以在给定的地方添加代码,以便我可以从宏中返回结果?你可以添加代码;我试过了,但如果你写的是返回,效果就不理想了。我看到这个例子 double Try_helper; #define Try(EXPR, MES) \ Try_helper = EXPR; \ if (Try_helper <= 0.0) { \ printf("Error: %s ", MES); \ return 4; \ } 在这里,在返回工作的主题中。 [删除] 2019.10.23 04:08 #173 Seric29: 帮助我解决这个问题。有一个宏,我想在里面添加代码以返回结果。 我可以在指定的地方添加代码来返回宏的结果吗?你可以添加代码;我试过了,但如果你写的是返回,效果就不理想了。我看到这个例子 在这里,在返回工作的主题中。 调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,循环体)。 int for3(int a, int b, int c, void(*loop)()) { for(int i=0; i<a; i++) for(int j=0; j<b; j++) for(int k=0; k<c; k++) loop(); return 4; } ... void fn() {} ... if ( for3(1, 2, 3, fn) ) printf("hellow world"); Seric29 2019.10.23 04:27 #174 Vict: 调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,一个循环的主体)。 我不知道可以这样做,但我的目标是写一个复杂的多行宏,要执行许多命令,可能一个宏不能执行许多命令,把它变成一个函数是不可能的?有时需要从一个函数中提取例如一个循环,我在想这是否可能,也许我写的是废话。 [删除] 2019.10.23 04:54 #175 Seric29: 我不知道可以这样做,但我的任务是写一个复杂的多行宏,它将执行许多命令,可能一个宏不能执行许多命令,把它做成一个函数是不可能的?有时需要把一个函数做成一个循环,我不知道这是否可行,也许我在写废话。 我不知道任务是什么,也不知道你是否在那里挖掘,但一目了然--另一种方法。 #define CHECKCONT_INST(_NAME) \ bool _NAME(upindex_t start, upindex_t top) \ double lev_k[] = {CHECKCONT_INST_LEVELS}; \ ... \ } \ #define CHECKCONT_INST_LEVELS CHECKCONT_INST(check_cont_withoutlev); #undef CHECKCONT_INST_LEVELS #define CHECKCONT_INST_LEVELS 1.618 CHECKCONT_INST(check_cont_1618); #undef CHECKCONT_INST_LEVELS #define CHECKCONT_INST_LEVELS 1.618, 2.618 CHECKCONT_INST(check_cont_2618); #undef CHECKCONT_INST_LEVELS check_cont_withoutlev(0, 10); check_cont_1618(0, 10); check_cont_2618(0, 10); 这样你就可以替换任何一块函数(不一定是像我这样的数组填充),并根据需要将其实例化。 Dmitry Fedoseev 2019.10.23 06:20 #176 #define FOR3(a,b,c,code) \ for(int i=0; i<a; i++) \ for(int j=0; j<b; j++) \ for(int k=0; k<c; k++){ \ code; \ } void OnStart(){ string x=""; FOR3(2,3,4,x=x+(string)i+","+(string)j+","+(string)k+";\n"); Alert(x); } Dmitry Fedoseev 2019.10.23 06:30 #177 Seric29: 我不知道可以这样做,但我的任务是写一个复杂的多行宏,它将执行许多命令,可能一个宏不能执行许多命令,把它做成一个函数是不可能的?有时我可能需要把一个函数做成一个循环,我不知道这是否可行,也许我在写废话。 这是有可能的,但不是像这样。 Seric29 2019.10.23 07:27 #178 Dmitry Fedoseev: 你可以,但不是像这样。 这个宏将是无效的,为了从它返回一个结果,你需要一个表达式来计算,换句话说,你需要在里面调用一个函数,我已经得出了这个结论。 Seric29 2019.10.23 07:30 #179 Vict: 调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,循环体)。 我研究过一个函数指针,说实话,我一直不明白它是干什么用的,其实你可以调用一个函数而不是一个变量可能会让我觉得很紧张,一个函数指针类似于一个重载或多态。 [删除] 2019.10.23 07:41 #180 Seric29: 我一直在研究函数指针,说实话,我还没有理解它的作用,基本上你可以调用一个函数而不是一个变量,也许我遇到了困难,函数指针就像一个重载或多态。 你有一些算法,你可以把一个子算法放在里面,可以说是 "调整 "它来解决一个特定的问题。从本质上讲,它是虚拟函数 的一个类似物。主要是你自己要求的,现在你不知道为什么)),你有一个框架,里面放了一个循环。 1...111213141516171819202122232425...28 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它的工作原理!
谢谢你!
帮助我解决这个问题。有一个宏,我想在里面添加代码以返回结果。
是否可以在给定的地方添加代码,以便我可以从宏中返回结果?你可以添加代码;我试过了,但如果你写的是返回,效果就不理想了。我看到这个例子
在这里,在返回工作的主题中。
帮助我解决这个问题。有一个宏,我想在里面添加代码以返回结果。
我可以在指定的地方添加代码来返回宏的结果吗?你可以添加代码;我试过了,但如果你写的是返回,效果就不理想了。我看到这个例子
在这里,在返回工作的主题中。
调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,循环体)。
调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,一个循环的主体)。
我不知道可以这样做,但我的目标是写一个复杂的多行宏,要执行许多命令,可能一个宏不能执行许多命令,把它变成一个函数是不可能的?有时需要从一个函数中提取例如一个循环,我在想这是否可能,也许我写的是废话。
我不知道可以这样做,但我的任务是写一个复杂的多行宏,它将执行许多命令,可能一个宏不能执行许多命令,把它做成一个函数是不可能的?有时需要把一个函数做成一个循环,我不知道这是否可行,也许我在写废话。
我不知道任务是什么,也不知道你是否在那里挖掘,但一目了然--另一种方法。
这样你就可以替换任何一块函数(不一定是像我这样的数组填充),并根据需要将其实例化。
我不知道可以这样做,但我的任务是写一个复杂的多行宏,它将执行许多命令,可能一个宏不能执行许多命令,把它做成一个函数是不可能的?有时我可能需要把一个函数做成一个循环,我不知道这是否可行,也许我在写废话。
这是有可能的,但不是像这样。
你可以,但不是像这样。
这个宏将是无效的,为了从它返回一个结果,你需要一个表达式来计算,换句话说,你需要在里面调用一个函数,我已经得出了这个结论。
调用一个函数,在这个函数 中你传递一个指向另一个函数的指针(例如,循环体)。
我研究过一个函数指针,说实话,我一直不明白它是干什么用的,其实你可以调用一个函数而不是一个变量可能会让我觉得很紧张,一个函数指针类似于一个重载或多态。
我一直在研究函数指针,说实话,我还没有理解它的作用,基本上你可以调用一个函数而不是一个变量,也许我遇到了困难,函数指针就像一个重载或多态。
你有一些算法,你可以把一个子算法放在里面,可以说是 "调整 "它来解决一个特定的问题。从本质上讲,它是虚拟函数 的一个类似物。主要是你自己要求的,现在你不知道为什么)),你有一个框架,里面放了一个循环。