2010-02-22 15 views
1

我正在开发一个C语言的Python模块,它解析一个使用动态整数大小的非常高效的协议。使用这个协议发送的整数的大小可以从C的'short'到'long long'的大小相等。在C中处理动态整数类型?

该协议有一个字节,指定发送变量的类型(从短到长),但我不知道如何处理这个代码。现在,我正在设置一个void指针并根据所发送值的大小分配内存 - 然后使用atoi,atol和atoll设置该指针。问题是,我需要能够访问该值,并且如果不在稍后进行投放,则无法这样做。

有什么好办法解决这个问题?

回答

4

要么始终将其存储在本地long long,或把它放在一个适宜的规模标志组成struct和所有可能的类型的union

+0

我对如何使用struct/union有点困惑..有一个简单的例子吗? – user278423 2010-02-22 03:50:30

+0

那么当你在代码中访问它的时候,你总是会把这个联盟当作很长的一段时间?或者您是否必须关闭该标志并进行相应的转换? – user278423 2010-02-22 03:57:00

+0

您关闭'.flag'并阅读相应的成员('.ubyte','.ulong'等)。 – 2010-02-22 03:58:32