字符大小端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位

测试结果:

0818b9ca8b590ca3270a3433284dd417.png

从以上测试结果,可以总结几点:

大小端: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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java构建工具:Ant vs. Maven vs Gradle

最初&#xff0c;Make是唯一可用的构建工具。 后来通过GNU Make进行了改进。 但是&#xff0c;从那时起&#xff0c;我们的需求增加了&#xff0c;结果&#xff0c;构建工具也不断发展。 JVM生态系统主要由三个构建工具组成&#xff1a; 常春藤的 Apache Ant 马文 摇篮 An…

redis问题与解决思路

问题现象&#xff1a; 集群状态 1主 2从&#xff0c;主没有开启bgsave&#xff0c;从开启bgsave。现象所有redis可以访问&#xff0c;进行操作。主不断开始bgsave 1从停止bgsave。 主日志报错# Connection with slave XXXX lost. 从日志报错# Timeout receiving bulk data from…

Asp.Net中用javascript实现弹出窗口永远居中

//Asp.Net中用javascript实现弹出窗口永远居中functionShowDialog(url) { var iWidth600; //模态窗口宽度 var iHeight500;//模态窗口高度 var iTop(window.screen.height-iHeight)/2; var iLeft(window.screen.width-iWidth)/2; window.open(url,"Detail"…

Linux Vim 光标错位,技术|Vim 复制粘帖格式错乱问题的解决办法

有时候&#xff0c;复制文本(尤其是代码)到 Vim&#xff0c;会出现格式错乱的问题。看样子&#xff0c;应该是自动缩进惹得祸。本文不去深究原因&#xff0c;直接给出解决方法。1. paste 模式运行如下命令&#xff0c;进入 paste 模式&#xff1a;:set paste进入 paste 模式后&…

jQuery事件机制

1 事件操作 1.1 页面载入事件 $(document).ready(function(){// 在这里写你的代码... }); 或者 $(function($) { // 你可以在这里继续使用$作为别名... }); 1.2 事件绑定 on(eve,[sel],[data],fn) 1.7 在选择元素上绑定一个或多个事件的事件处理函数 bind(type,[dat…

struts中多个模块时,使用多个struts-config.xml文件之间时如何切换的!

1.配置web.xml文件&#xff0c;通知控制器&#xff1a; <!-----------------这个是默认的--------------------------> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-valu…

关于JVM和JIT的一点点

如您所知&#xff0c;JVM&#xff08;Java Virtusal Machine&#xff09;使Java能够遵循“一次写入&#xff0c;随处运行”的范例。 JVM的核心包括以下组件&#xff1a; 堆 堆 PermGen和方法区域 JIT编译器 代码缓存 堆是在应用程序代码开发阶段为您使用的每个新运算符分…

kali vmtools 不能复制粘贴解决方法(绝对实用)

朋友问起怎么vm kali 2019怎么不能复制了&#xff0c;而且网上的方法大多不适合。我就在这儿记录一笔吧&#xff0c;方便大家。 之前发现最新kali复制粘贴不能用&#xff0c;后来发现一个奇妙的套路&#xff0c;不是共享文件夹。只需要把文件复制到命令行中&#xff0c;会出现t…

web前端-回调函数sort详解

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>JS函数</title></head><body> <script> //回调函数 &#xff08;高阶函数&#xff09; function fn(f1, f2) { return f1(1) …

MineCraft和堆外内存

总览 MineCraft是一个很好的例子&#xff0c;说明何时堆外内存确实可以提供帮助。 关键要求是&#xff1a; 保留的数据大部分是一个简单的数据结构&#xff08;在我的世界的情况下&#xff0c;它的很多字节[]&#xff09; 堆外内存的使用可以隐藏在抽象中。 考试 我使用以下测…

kubernetes进阶之七:Service

1.概述 Service也是Kubernetes里的最核心的资源对象之一&#xff0c;Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个“微服务”&#xff0c;之前我们所说的Pod、RC等资源对象其实都是为这节所说的“服务”------Kubernetes Service作“嫁衣”的。图1.12显…

IE Firefox css 差别 [转]

1、单位问题问题&#xff1a;任何距离的数值ie可以不加单位&#xff0c;ff必须要求写单位&#xff08;0除外&#xff09; 解决&#xff1a;写全单位如padding:0px;2、水平居中问题&#xff1a;div里的内容&#xff0c;ie默认为center&#xff0c;而ff默认left 解决&#xff1a;…

Inside Kolla - 04 Kolla 目录结构

Kolla 目录结构 把 Kolla 的源代码下载下来后&#xff0c;先从总体上分析 Kolla 的目录结构&#xff0c;查看顶层目录结构&#xff0c;使用 tree -L 1 输出 . ├── ansible ├── compose ├── demos ├── devenv ├── docker ├── docs ├── LICENSE ├── READ…

Json Schema的使用

直接上案例&#xff1a; 在Web Api通讯中&#xff0c;客户端发送json数据&#xff0c;服务端反序列化json&#xff08;json与某个类形成对应关系&#xff09;&#xff0c;在某些情况下&#xff0c;需要校验其上传的json是否合法。 服务端是使用Json.net(newtonsoft.json)进行…

红帽企业版linux 7.4更新启动,红帽Linux企业版7.4 淘汰Btrfs文件系统

我们不得不承认Btrfs是一种古老的文件系统&#xff0c;当初(2007年)是由甲骨文宣布并进行中的COW(copy-on-write式)文件系统&#xff0c;意图取代Linux的ext。但是天不遂人愿&#xff0c;2011年8月9日&#xff0c;Fedora就决定Btrfs不再作为Fedora 16默认文件系统&#xff0c;走…

关于控件postback 后viewstate加载失败的问题

我写了一个控件Inherits TextBox&#xff0c;里面有一个复杂属性Tip&#xff0c;但每次postback的时候都说加载viewstate失败&#xff0c;除非我在!postback的情况下给Tip.xxx赋值. 下面我贴出代码&#xff0c;我已经搞了一天了&#xff0c;搞不出什么原因。 JTextBox控件 usin…

Java 8 Friday:语言设计很微妙

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五&#xff0c;我们都会向您展示一些不错的教程风格的Java 8新功能&#…

linux下如何查看当前机器提供了哪些服务

答:使用netstat工具 在命令行下输入netstat -atun即可列出当前机器提供的服务 netstat各选项解析: -a 列出所有服务 -t 列出tcp相关 -u 列出udp相关 -n 以数字形式显示主机、端口或用户名转载于:https://www.cnblogs.com/dakewei/p/10414450.html

天猫浏览型应用的CDN静态化架构演变(转)

在天猫双11活动中&#xff0c;商品详情、店铺等浏览型系统&#xff0c;通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加&#xff0c;每年这些浏览型 系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此&#xff0c;架构方面的重点在于&…

jQuery表单验证的几种方法

1.jQuery的框架的验证&#xff1a;validate框架 Jquery Validate 验证规则 (1)required:true 必输字段(2)remote:”check.PHP” 使用ajax方法调用check.php验证输入值(3)email:true 必须输入正确格式的电子邮件(4)url:true 必须输入正确格式的网址(5)date:true 必须输入正确格…