如果我使用同一个密钥推送用户数据两次,会发生什么
What happens if I push userdata twice using the same key?
我想知道如果我使用同一个键将lightuserdata推入注册表两次会发生什么。
我的代码:
MyData *x, *y; //let's say these are valid pointers
lua_pushstring(L, "my_data");
lua_pushlightuserdata(L, static_cast<void *>(x));
lua_settable(L, LUA_REGISTRYINDEX);
lua_pushstring(L, "my_data");
lua_pushlightuserdata(L, static_cast<void *>(y));
lua_settable(L, LUA_REGISTRYINDEX);
lua_pushstring(L, "my_data");
lua_gettable(L, LUA_REGISTRYINDEX);
MyData *data = static_cast<MyData *>(lua_touserdata(L, -1));
//would the data be x or y?
以前按下的指针(x
(会被新的指针(y
(取代吗?
添加:有没有办法检查当前注册的密钥列表?
Lua注册表是一个普通的Lua表。你的代码相当于
registry.my_data = x
registry.my_data = y
所以,是的,在这两行之后,registry.my_data
的值就是y
的值。
相关文章:
- g++的分段错误(在NaN上使用to_string两次时)
- 蛇在C++不会连续转两次
- 检查一个数组是否包含在另一个数组中,以相反的顺序,至少两次
- 从具有按值捕获的 lambda 移动构造 std::函数时,移动构造函数调用两次
- 我应该如何去缓解两次出现的cin?
- Realloc 两次无法在 Visual Studio 上运行
- 如果我使用同一个密钥推送用户数据两次,会发生什么
- 当 reset() 被unique_ptr调用两次时会发生什么?
- 两次商店有什么
- 两次删除链表有什么区别?
- 在C 中,当使用两次时,这意味着什么
- 有什么方法可以通过删除表达式安全地处理两次释放内存?
- 执行随机开关函数的QT方式是什么连续两次使用相同情况的方法
- 如果参数传递两次,会发生什么情况?一次按值,一次按引用?是否会修改
- C++重载运算符两次,一个返回非常量引用,另一个返回常量引用,首选项是什么
- 是什么原因导致Windows发送ID_HELP命令两次
- "!!"(否定两次)的用法是什么?
- 为什么Microsoft在他们的 winnt.h 文件中两次 typedef 声明什么构成 "double" ?
- 不知道出了什么问题 - 两次程序隔离错误
- 什么是delete指针,指针=0;表述功?它清除内存两次吗?