我不明白如何为我的库中的函数定义默认值。默认值往往被忽略,我收到“错误的参数计数”错误消息。
这是我的例子。我创建了简单的测试库experts\libraries\test.mq4
:
void test(int i = 0) // Note the default value for "i"
{
}
然后我将.mqh
文件创建为experts\include\test.mqh
:
#import "test.ex4"
void test(int i = 0); // Note the default value for "i"
#import
现在我创建简单的专家“experts\simpletest.mq4”:
#include <test.mqh>
int start()
{
// Should be able to call test() function without providing any arguments,
// because it has default value.
// If I change this line to test(0), everything compiles correctly
test(); // Causes "wrong parameters count" compilation error
return(0);
}
对于 test() 函数调用,我收到以下错误:
')' - 错误的参数计数
如果我将此函数调用更改为test(0)
,一切都会编译,但我应该能够在test()
不提供任何参数的情况下调用函数,因为我在 .mqh 文件中具有第一个参数的默认值,如下所示: void test(int i = 0); 为什么它不使用默认值?
我在谷歌上搜索任何线索,但找不到关于这个问题的任何参考资料。有人知道吗?