Как сделать новую функцию и передать ее через другую функцию - PullRequest
0 голосов
/ 08 марта 2019

В принципе, я не знаю, как сделать что-то подобное:

    lua_pushcfunction(L, int func(lua_State* L) { 
      printf("hello");
      return 0;
    });

Я пробовал много вещей, но не работает

1 Ответ

2 голосов
/ 08 марта 2019

Два способа:

  1. Определите функцию, затем нажмите ее.

    int func(lua_State* L) { 
      printf("hello");
      return 0;
    };
    
    // later...
    lua_pushcfunction(L, func);
    

    Это единственный способ сделать это в C или до C ++ 11.

  2. Используйте лямбда-выражение (он же анонимная функция):

    lua_pushcfunction(L, [](lua_State* L) -> int { 
      printf("hello");
      return 0;
    });
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...