我需要从2个字节中生成一个小的整数数据类型,我的代码失败了 结果= 0
std::unordered_map<std::pair<size_t, size_t>, add_func*>fnsAdd = boost::assign::map_list_of
(std::make_pair(typeid(integer_value).hash_code(), typeid(integer_value).hash_code()), (add_func*)&integer_value_integer_value_Add)
(std::make_pair(typeid(integer_value).hash_code(), typeid(real_value).hash_code()), (add_func*)&integer_value_real_value_Add)
答案 0 :(得分:5)
我无法重现您描述的问题。您展示的代码对我来说很好。
但是,您根本不需要pointer
变量:
function BytesToSmallInt(B0, B1: Byte): SmallInt;
var
Number: SmallInt;
small: array [0 .. 1] of Byte absolute Number;
begin
small[0] := B1;
small[1] := B0;
Result := Number;
end;
你甚至可以摆脱阵列:
function BytesToSmallInt(B0, B1: Byte): SmallInt;
begin
Result := (Smallint(B0) shl 8) or B1;
end;