读书人

C/C++中的int/long,该如何解决

发布时间: 2012-08-08 14:32:45 作者: rapoo

C/C++中的int/long
网络编程时经常会传一个整数来表示长度/序号什么的,用int/long的话,怕接收端的int/long的字节数不一样,(当然可以加个字节表示系统是16/32/64位,但感觉这样做很蹩脚),用short的话,担心取值范围不够...
大家是怎么做的啊?

[解决办法]
整数类型大小兼容哪用得着这么麻烦。。。统一约定长度不行?
#include <cstdint>
using std::uint32_t;
没C++11的用C99的stdint.h,当然不用std::了。
要是MSVC10以下之类的奇葩/古董没有自带,随便Google一个实现也不难。



[解决办法]

探讨

引用:

引用:
如果是长度或者序号,那表示就是非负数了,那可以用size_t。

我不知道sizeof(size_t)在各个系统上是否是一样的???

在C++中,设计 size_t 就是为了适应多个平台的 。size_t的引入增强了程序在不同平台上的可移植性。size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义一最低……

[解决办法]
探讨

引用:
引用:

引用:
自己指定字节流,规定大端传输即可跨平台解析。

没明白这个怎么能解决字节大小的问题


那说明你根本不懂大小端,你要是哪里不服可以测测你。

你写个例子怎么传整数给我看看, 再教训也不迟...

读书人网 >C++

热点推荐