Как бы структура в С++ - это своего рода класс с публичными полями и методами, в то время, как в Си структура может иметь только поля.
Но если хотите поизвращаться, то можно внутри структуры хранить ссылки на функции, а уже их вызывать как методы (правда, первым параметром нужно будет саму структуру передавать).
Например, вырву кусок кода из вашего листинга:
typedef struct {
	// какой-то код
	// указатель на функцию - "метод" класса
	void (*start)(struct app*);
 } App;
 void app_start(App *app)
 {
	// какой-то код
 }
 App *app_new(void)
 {
	// какой-то код
	// собственно, задаем адрес функции
	app->start = &app_start;
 	return app;
 }
int main(void)
{
	App *app = app_new();
	// Вуаля - вызываем как метод класса
	app.start(&app);
	return 0;
}