gpt4 book ai didi

c - 使用 Lua C 函数时减少重复的任何技巧

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:33 25 4
gpt4 key购买 nike

我有一段代码如下所示:

lua_newtable(L);

lua_pushstring(L, "gid");
lua_pushinteger(L, info[i].codepoint);
lua_settable(L, -3);
lua_pushstring(L, "cl");
lua_pushinteger(L, info[i].cluster);
lua_settable(L, -3);
lua_pushstring(L, "ax");
lua_pushnumber(L, pos[i].x_advance);
lua_settable(L, -3);
lua_pushstring(L, "ay");
lua_pushnumber(L, pos[i].y_advance);
lua_settable(L, -3);
lua_pushstring(L, "dx");
lua_pushnumber(L, pos[i].x_offset);
lua_settable(L, -3);
lua_pushstring(L, "dy");
lua_pushnumber(L, pos[i].y_offset);
lua_settable(L, -3);
lua_pushstring(L, "w");
lua_pushinteger(L, extents.width);
lua_settable(L, -3);
lua_pushstring(L, "h");
lua_pushinteger(L, extents.height);
lua_settable(L, -3);
lua_pushstring(L, "yb");
lua_pushinteger(L, extents.y_bearing);
lua_settable(L, -3);
lua_pushstring(L, "xb");
lua_pushinteger(L, extents.x_bearing);
lua_settable(L, -3);

我所做的只是在表格中设置几个字段。这些字段是字符串或数字。请注意代码的重复程度。

有没有办法让它更干净一点,也许使用 C 宏?

最佳答案

您可以通过替换将长度减少 1/3

lua_pushstring(L, "cl");
lua_pushinteger(L, info[i].cluster);
lua_settable(L, -3);

通过

lua_pushinteger(L, info[i].cluster);
lua_setfield(L, -2, "cl");

等等。

关于c - 使用 Lua C 函数时减少重复的任何技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com