字符大小端aix linux,long, unsigned long不是跨平台的(慎用)
项目中用到long、long long等字段,遇到一些问题。先说得到的一些结论:
大小端:Windows、Linux是小端,AIX是大端。
sizeof(指针类型)=程序位数/8。
long、unsigned long不是跨平台的,一定要慎用。
自己写了程序测试各平台下(Windows、Linux、AIX),C++各基本类型的最大值、最小值,以及占用字节数。
#include
#include
using namespace std;
void checkEndian();
int main()
{
checkEndian();
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
return 0;
}
void checkEndian()
{
short int a=0x1122;
char* b = (char*)&a;
if(*b==0x11)
{
cout<
}
else
{
cout<
}
}
编译环境:
Windows(Win10):编译32位、64位
Linux(Redhat5.5):编译32位、64位
AIX(AIX5.3):编译32位、64位
测试结果:
从以上测试结果,可以总结几点:
大小端:Windows、Linux是小端,AIX是大端。
sizeof(指针类型)=程序位数/8。32位程序,指针类型占4个字节;64位程序,指针类型占8个字节。顺便提一句,8字节的指针,可以指向更多的地址,因而64位系统可以支持更大的内存。
最最重要的是:long、unsigned long不是跨平台的,一定要慎用。大多数时候(除Linux64、AIX64),long和int是一样的,unsigned long和unsigned int是一样的,用起来没有差别。所以,int不够用的时候,别用long,用long long。
字符大小端aix linux,long, unsigned long不是跨平台的(慎用)相关推荐
- 字符大小端aix linux,Go交叉编译的那些事
最近两个月,一直在搞项目的国产化移植,把golang开发好的程序,运行在国产化平台上,操作系统基本都是基于Linux,但是CPU架构除了x86,还有ARM和MIPS,我们平时的Golang都是运行于x ...
- 大小端 Big-Endian 与 Little-Endian
应该说没做底层开发(硬件或驱动)的人很可能不会彻底理解大小端的概念,大小端不是简单的一句"大端在前"还是"小端在前"能够概括的问题.在cpu, 内存, 操作系统 ...
- STM32的大小端模式——什么是大小端模式?
目录 1. 什么是大小端模式 2. 为什么会有大小端模式之分 3. 什么情况需要考虑大小端模式 4. 常见的设备的大小端模式 5. 测试大小端模式例程 6. 大小端转化例程 1. 什么是大小端模式 大 ...
- linux大端小端命令,linux的大小端、网络字节序问题
linux的大小端.网络字节序问题 总结:1.80X86使用小端法,网络字节序使用大端法. 2.二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, uns ...
- Linux系统的大小端模式
大端模式 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数 ...
- Linux内核判断大小端,linux kernel 如何处理大小端
暂时在用MPC8309,不太清楚大小端内核是什么时候给转的. 今天看了关于readl和writel具体实现的文章 今天就主要来分析下readl/writel如何实现高效的数据swap和寄存器读写.我们 ...
- linux结构体大小端,【转】位结构体+大小端模式
位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便 位结构定义的一般形式为: struct 位结构名{ 数据类型 [变量名]: 整型常数; 数据类型 [变量名] ...
- Linux账户标识R=400是什么意思_带你阅读linux内核源码:通俗讲解编译器、交叉编译器和大小端...
欢迎关注"技术简说",持续分享linux内核和驱动开发干货. 本文内容包括: 编译器和交叉编译器的介绍 交叉编译器的命名规则 如何交叉编译C代码 大端.小端的通俗讲解 如何判断你的 ...
- Linux大小端转换实现
实现 #include <byteswap.h> #include <stdint.h>/*** @brief 8字节类型的字节序转化*/ template<class ...
最新文章
- 干货!用 Python 快速构建神经网络
- Android10.0 Binder通信原理(十一)-Binder总结
- CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)
- python代码画简单图-python绘制简单彩虹图
- python request-Python之request模块-基础用法
- Theano深度学习入门
- python爬虫---requests库的用法
- 循环类里面的每一个属性
- SAP UI5 get route - local version VS central version
- 计算机培训研修日志,2021年计算机培训研修日志
- html中的数字选框,带有复选框和数字类型的HTML表单提交与PHP?
- java web-inf_对JavaWeb项目中WEB-INF目录的理解
- Linux之文件基础操作命令
- C语言中register类型变量
- 稳定性思考-强弱依赖
- dskinlite(uieasy mfc界面库)使用记录4:绘制动态元素(listbox)
- 第3次 实验 原码一位乘法实验
- Ruby File.open 方法打开文件和File.new 方法打开文件的差别
- jQuery boxy
- python采集原神高清pv图和语音
热门文章
- python高阶函数filter_Python进阶系列连载(13)——Python内置高阶函数filter(上)...
- js判断移动端,pc端,安卓,苹果浏览器的方法
- 四阶龙格库塔c语言,四阶龙格库塔算法的C语言实现
- 接口返回的类型是html页面_1.10 PhalApi 2.x 接口文档
- linkedblockingqueue 后 take 不消化_消化不良的成因及护理
- 服务器系统报错kernel-power,第十二讲、Linux服务器操作系统1.ppt
- linux 拿shell,linux下备份拿shell[渗透必备]
- java 监控 native 内存_JVM NativeMemoryTracking 分析堆外内存泄露
- CSDN转载别人文章的操作
- java在线找错_平台配置及测试错误提示及解决方案