Обернуть многие функции вызова 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
}

и повторите для других имен функций, возможно, с помощью специального генератора кода.

Другие вопросы по тегам