Обернуть многие функции вызова C в одну реализацию
"У меня есть требование, чтобы у вызова функции были разные имена, но все они должны ссылаться на одно и то же определение при выполнении. Например, у меня есть вызовы функций, такие как
UINT8 vsignal;UINT8 vsignal1;void Read_Message1_Signal1(&vSignal);void Read_Message2_Signal2(&vSignal1);
но это должно быть связано с
void Read_Message_Signal(UINT8 *signal){}
который уже реализован и скомпилирован как dll и должен быть связан с различными вызовами, так как эти вызовы могут различаться в зависимости от ввода.
Может ли кто-нибудь помочь мне, как достичь этого требования?
3 ответа
Есть ли какая-то причина, по которой вы не можете просто написать свою собственную обертку?
void Read_Message1_Signal1(&vSignal)
{
Read_Message_Signal(vSignal);
}
void Read_Message2_Signal2(&vSignal)
{
Read_Message_Signal(vSignal);
}
Вы можете автоматически сгенерировать их с помощью макроса, если их много.
Вы можете использовать препроцессор для этого:
#define Read_Message1_Signal1(x) Read_Message_Signal(x)
#define Read_Message2_Signal2(x) Read_Message_Signal(x)
Или переосмыслите свой API, потому что это кажется мне странным...
void Read_Message1_Signal1(&vSignal)
{
Read_Message_Signal(&vSignal); // or whatever
}
и повторите для других имен функций, возможно, с помощью специального генератора кода.