奇数数据类型问题

时间:2015-01-04 07:16:27

标签: c++ variables lua int

我对C ++很陌生,我不明白发生了什么。我正在尝试施放Lua double arg。数据类型为uint8_t。应用程序正在编译时没有任何问题 - 但是,当我没有从变量得到任何结果时 - 就像它是空的一样。

#include <iostream>
#include <netinet/in.h>
#include <sstream>
#include "lua.h"

using namespace std;
int _lua_function(lua_State* L) {
     int step = lua_tonumber(L, 1);
     ostringstream oss;
     oss << "Step is:" << step;
     return 0;
}

输出为:Step is: 22

当我改变

int step = lua_tonumber(L, 1);

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

输出变为:Step is:

为什么我因为数据类型改变而没有从变量中得到结果?

1 个答案:

答案 0 :(得分:2)

我会说您平台上的uint8_tunsigned char相同。在unsigned char中插入值为22的{​​{1}}时,您在输出中看不到ostringstream,但22表示的字符},这是一个不可打印的角色。

你可以尝试

22

看到同样的效果。