Хотите виртуальные методы?
Если нет, то вы просто определяете набор указателей на функции в самой структуре. Если вы назначите все указатели функций на стандартные функции C, то вы сможете вызывать функции из C в синтаксисе, очень похожем на тот, который вы делали бы в C ++.
Если вы хотите использовать виртуальные методы, все становится сложнее. По сути, вам нужно реализовать свой собственный VTable для каждой структуры и назначить указатели функций для VTable в зависимости от того, какая функция вызывается. Затем вам потребуется набор указателей на функции в самой структуре, которые, в свою очередь, вызывают указатель на функцию в VTable. По сути, это то, что делает C ++.
TBH, хотя ... если вы хотите последнее, то вам, вероятно, лучше просто найти компилятор C ++, который вы можете использовать, и перекомпилировать проект. Я никогда не понимал навязчивую идею о том, что C ++ нельзя использовать во встроенных системах. Я использовал его много раз, и он работает быстро и не имеет проблем с памятью. Конечно, вы должны быть немного осторожнее с тем, что делаете, но на самом деле это не так сложно.