奇奇怪怪的数据类型问题

我对C++还很新,不太明白发生了什么。我试图将Lua的“double”参数数据类型转换为“uint8_t”。应用程序编译没有任何问题-然而,当我这样做时,变量不会有任何结果-就像它是空的一样。

当我改变

int step = lua_tonumber(L, 1);

uint8_t step = static_cast<uint8_t> (lua_tonumber(L, 1));

输出变为:Step is:

为什么我由于数据类型更改而得不到任何变量结果?

点赞
用户434551
用户434551

我认为在您的平台上,uint8_tunsigned char 是相同的。当将值为 22unsigned char 插入到 ostringstream 中时,您看不到输出中的 22,而是由 22 表示的字符,它是一个不可打印的字符。

您可以尝试

uint8_t s = 22;
std::cout << s << std::endl;

来看到相同的效果。

2015-01-04 07:30:33