Pointers 作为函数参数的Void指针

Pointers 作为函数参数的Void指针,pointers,c++-cli,void,Pointers,C++ Cli,Void,我使用两种结构来模拟“或”&“和”逻辑门。这些结构是相同的。我需要创建一个函数,作为这两个结构中的一个的参数。比如: int myfunc(void *mystruct, unsigned char param) { switch (param) { case 'o': ... break; //"OR" logic gate struct case 'a': ... break; //"AND" logic gate struct } } 如何在托管代码c++/cli中实现这一想法?您只需

我使用两种结构来模拟“或”&“和”逻辑门。这些结构是相同的。我需要创建一个函数,作为这两个结构中的一个的参数。比如:

int myfunc(void *mystruct, unsigned char param)
{
switch (param)
{
case 'o': ... break; //"OR" logic gate struct
case 'a': ... break; //"AND" logic gate struct
}
} 

如何在托管代码c++/cli中实现这一想法?

您只需为两个不同的结构使用一个并集,然后传递该并集:

struct AND_gate {
    // ...
};

struct OR_gate {
    // ...
};

union gate {
    AND_gate and_gate;
    OR_gate or_gate;
};

int myfunc(gate * my_gate, unsigned char param)
{
    // ...
}
或者,也许更好(由于可用信息有限,很难说),听起来您的设计可能受益于使用继承:

struct gate {    // parent class
    // ...
};

struct AND_gate: public gate {
    // ...
};

struct OR_gate: public gate {
    // ...
};

int myfunc(gate * my_gate, unsigned char param)
{
    // ...
}

您可能是指如何返回结构。。。在这种情况下,就像这样:

typedef struct
{
...
} YourStruct;

YourStruct *Function(...)
{
    return &GlobalStructureForAndGate;
}

请添加更多信息。