如何制作一个新功能并通过另一个功能

时间:2019-03-07 22:39:23

标签: c++ lua

基本上我不知道该怎么做:

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

我尝试了很多东西,但不仅有用

1 个答案:

答案 0 :(得分:2)

两种方式:

  1. 定义函数,然后按下它。

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

    这是在C中或C ++ 11之前的唯一方法。

  2. 使用lambda表达式(又名匿名函数):

    lua_pushcfunction(L, [](lua_State* L) -> int { 
      printf("hello");
      return 0;
    });