# Как правильно передавать функцию как параметр C

**URL:** <https://forum.itvdn.com/t/kak-pravilno-peredavat-funkcziyu-kak-parametr-c/2694>\
**Category:** C#\
**Created:** [30.10.2018 19:45:07 UTC](https://forum.itvdn.com/t/kak-pravilno-peredavat-funkcziyu-kak-parametr-c/2694 "2018-10-30T19:45:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sergey226](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/s/f6c823/32.png) [@sergey226](https://forum.itvdn.com/u/sergey226)\
**Post date:** [30.10.2018 19:45:07 UTC](https://forum.itvdn.com/t/kak-pravilno-peredavat-funkcziyu-kak-parametr-c/2694/1 "2018-10-30T19:45:07Z")

</div>

```
void App::setup() {
  bt_rest.function("startManufacturing", startManufacturing);
}

int App::startManufacturing(String command) {  
...  
return 1;  
}
```

bt\_rest.function принимает (char \* function\_name, int (\*f)(String)),

Но компилятор выдает invalid use of non-static member function на bt\_rest.function("startManufacturing", startManufacturing);

Что делать?

---

<div class="post-metadata">

**Author:** ![volklenam](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/v/eb8c5e/32.png) [@volklenam](https://forum.itvdn.com/u/volklenam)\
**Post date:** [30.10.2018 20:11:21 UTC](https://forum.itvdn.com/t/kak-pravilno-peredavat-funkcziyu-kak-parametr-c/2694/2 "2018-10-30T20:11:21Z")

</div>

С вообще интересный язык программирования, так что я нашёл как минимум 4 варианта решения данной проблемы:

1. Передавать в аргумент указатель на метод App:

```
Rest::function(char * function_name, int (App: ![](https://forum.itvdn.com/content/images/emoticons/kiss-emoticon.png)f)(String), App
```
