在MQL5中,总是有漏洞可钻! ;) - 页 7

 
o_O:
可以使用memcpy 吗?
 
Комбинатор:
可以使用memcpy吗?

不 )

你看,如果你必须在调用SendParam之前做一些准备工作,那么把int包在一些CInt类中会比较容易。

 
o_O:

没有原生的方法来取舍指针。我的意思是,如果你不从一开始就使用CInt包装器,你将很难处理指针。

好吧,从正面看,你也做饭。


void f(int* value)
{
   //do something
}

{
   int x = 5;
   f(&x);
}

摄取地址是一种准备。相反,它将会是

f(GetPtr(x))再加上你必须传递类型

 
o_O:

假设在一个类中有一个函数

SendParam(int type, void* param)

其中参数的类型(type)和参数本身,或者说参数的指针(void*)被传递。

该参数可以是任何类型(类或简单类型)。

参数可以是任何类型(一个类或一个简单类型)。

有什么问题,法律无效。
模板<typename T>
void SendReceiveParam(T& param)。
....
{
double dval = 10;
SendReceiveParam(dval)。
int ival = 10;
SendReceiveParam(ival)
...
// 对结构对象的引用
AAA结构 { void operator=(int a) {}};
AAA struct_val。
SendReceiveParam(struct_val)。
}

通过int指针写一个非法的?
 
我还是不明白这个问题的说法。显然,即使在例子中也没有明确说明你想达到什么目的。
 
fxsaber:
我还是不明白这个问题的状况。显然,没有明确表述我们想要得到什么,甚至在例子中也没有。

我已经写过两次,我们试图把一个int的指针传到void*参数中。

(memcpy 和中间类的选项已经建议过了,没必要重复)。

 
o_O:

我已经写过两次,我们试图把一个int的指针传到void*参数中。

(memcpy,中间类的选项已经建议过了,没必要再重复了)

该死的,至少在C语言的语法中,你能给我一个在MQL中也应该工作的代码例子吗?
 
alexsis78:
有什么问题,法律无效。
模板<typename T>
void SendReceiveParam(T& param)。

不错,但不适合。

它不能传递NULL

 
fxsaber:
妈的,至少在C语言中,我们可以有一个在MQL中也应该工作的例子代码吗?
void SendParam(void* );

int a=10;
SendParam(&a);
SendParam(NULL);
 
o_O:
void SendParam(void* );

int a=10;
SendParam(&a);
SendParam(NULL);
谢谢你的例子!但我没有抓住使用的目的--方便。请从SendParam中再加一块,看看例如int的指针要如何使用。
o_O:

美丽,但不适合。

究竟什么是美丽?这似乎是对模板的正面应用。或者,也许我错过了什么?