windows与linux中的基础数据类型长度问题
来源:互联网 发布:保罗加索尔总决赛数据 编辑:程序博客网 时间:2024/05/16 11:24
今天加班,打算把代码从WINDOWS移植到LINUX去。突然出现一个获取不到值的问题。百思不得其解!
由于是两个终端间传输数据时该数据出的问题,于是用GDB和VS去调。
LINUX中为发送端,WINDOWS为接收端。
发送端数据完全正确,再看WINDOWS中接收数据。从内存看,一位一位读,没问题啊!
监视去看..后面错完了..什么情况!
这段数据是个结构体,大概的结构如下:
struct A
{
unsigned int a;
unsigned long b;
};
struct B
{
unsigned int a;
A b[0];
}
想了半天没想到什么原因,于是去看内存,完全没问题!
顺手在即时窗口中打了sizeof(long),结果为4...
4!
什么情况!
gdb p sizeof(long)
gdb 8
好吧...
百度了一下
得出以下结论:
32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样):
linux64 windows64 linux32 windows32
char 8 8 8 8
short 16 16 16 16
int 32 32 32 32
long 64 32 32 32
long long 64 64 64 64
size_t 64 64 32 32
今天总算知道了 多平台编程,避免使用long与size_t。
希望以后自己能记住...- windows与linux中的基础数据类型长度问题
- 关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总
- 关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总
- C与C++中的数据类型长度
- C与C++中的数据类型长度
- JAVA基础 数据类型长度
- C++数据类型长度问题
- mysql数据类型长度问题
- linux 数据类型长度总结
- SQL数据类型与长度
- Linux系统32位与64位数据类型长度比较
- Linux系统32位与64位数据类型长度比较
- Linux系统32位与64位数据类型长度比较
- Linux系统与Windows系统中的回车与换行问题
- Linux系统与Windows系统中的回车与换行问题
- 【基础】数据类型-范围、精度、长度
- windows编程中的数据类型与宏
- java中的基本数据类型长度
- Mybatis 之 select
- 站在hadoop上看hive(公司讲座)
- 动态链接库DLL
- Servlet容器之安全多线程问题
- 关于mount nfs时-o nolock的问题
- windows与linux中的基础数据类型长度问题
- linux记录
- 安装NFS服务,并挂载到开发板
- bochs 配置文件问题
- spark与磁盘交互,spark读hdfs
- bit,byte,word,long word转换关系
- Remove Duplicates from Sorted List
- poj 1170 记忆化搜索
- jobdu 1480 最大上升子序列和结题报告 动态规划问题