位段的跨平台问题

2023-11-09

笔者在之前的两篇文章中已经详细的详解了:位段的各种问题:

 有意者请参考一下:位段的基础知识(大家都不怎么知道位段)参考链接为:位段的基础知识(大家都不怎么知道位段)_念君思宁的博客-CSDN博客

对于位段的概念,想必大多数的C语言学者,都是不知道的吧!包括笔者在之前也不知道!!对于位段,还是笔者在深扒中,偶然间接触到的!!通过对位段的短暂学习,感概良多!收获满满,所以,笔者在此打算,写一遍关于位段的文章,来带领大家,了解一下位段的基础知识!!

1.什么是位段??

其实,位段是基于结构体来实现的!!

    位段的声明和结构体是类似的,但是有两个不同!!

    1.结构体的成员必须是:int ,unsigned ind, 或者signed int ,char 等类型,

    2.位段的成员名后面有一个冒号(:)和一个数字!!
 

简单的位段代码:

struct s
{
	char a : 3;  //3指的是:a占3个比特位
	char b : 4;
	char c : 5;
	char d : 4;
};

位段的内存分配:参考链接为:位段的内存分配_念君思宁的博客-CSDN博客

在此之前,还需要各位老铁知道一下基础知识:

1.位段的成员可以是:int  ,unsigned int ,signed int ,或者,char (属于整型家族)类型!

2.位段的空间是按照需要以4个字节(int )或者1个字节(char)的方式开辟的

3.位段涉及很多不确定的因素,位段是不跨平台的,注意课移植的程序应该避免使用位段!
 

话不多说,直接进入,本篇文章的主题!

对于位段,在使用的时候,有很多的限制!就比如:这篇文章的主要讲解的:位段的跨平台问题!


1.int位段被当成有符号数,还是无符号数??是不确定的!(int 开辟的4个字节,32个比特位,但是最高位的符号位,是当做有符号数,还是无符号数来解决,这个是不确定的!)

2.位段中最大的数目是不确定的,(16位机器最大16,32位机器最大32,写成27,在16位机器会出问题)

3.位段中的成员在内存中,从左到右分配,还是从右到左分配,尚未定义!!

 4.当一个结构体包含俩个段位成员,而第二个段位成员比较大,无法容纳于第一个位段剩余位时,是舍弃剩余的位??还是利用??这个也是不确定的!!

总结一下

跟结构体相比,位段可以达到相同的效果,但是可以很好的节省空间,但是有跨平台的问题存在!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

位段的跨平台问题 的相关文章

  • 【面试总结】--tomcat调优方案

    前段时间参加面试 面试过程中提到服务器的调优方案 这里总结一下 首先说一下tomcat的调优方案 Tomcat本身的优化 Java虚拟机调优 Tomcat 优化分为系统优化 接下来一个个介绍 一 Tomcat本身的优化 Tomcat 的自身
  • js获取当前页面url网址信息

    1 window location href 设置或获取整个 URL 为字符串 var test window location href alert test 返回 http i cnblogs com EditPosts aspx op
  • -bash: mysqldump: command not found

    根目录在 usr local mysql bin mysqldump所以得在此目录下执行 要不就是创建软连接 这个目录是我自己tar安装的时候配置的目录 如果安装的是其他目录换成自己的目录就行了 不过一般都是这个目录吧 1 首先通过下面的命
  • Spring的控制反转(依赖注入),及两种注入方式

    1 提供构造函数来让spring实现构造注入 public class PersonService private String name 提供bean的构造函数 让spring用构造注入的方式来构造cibean public Person
  • nodejs 通过nginx后出现响应慢的解决方法

    最近用了nodejs搭建服务器 然后用了nginx做了反向代理 项目开发需求 没办法 但是发现了经过代理之后发现网页请求变慢了 而且是不能忍的一分钟以上 一开始 怀疑是在nodejs那边的问题 结果在nodejs那边进行了判断 通过写测试代
  • python : is 和==的区别

    Python中的对象包含三要素 id type value 1 id用来唯一标识一个对象 is判断的是a对象是否就是b对象 是通过id来判断的 2 type标识对象的类型 3 value是对象的值 判断的是a对象的值是否和b对象的值相等 是

随机推荐

  • Android音频系统之AudioFlinger(一)

    1 1 AudioFlinger 在上面的框架图中 我们可以看到AudioFlinger 下面简称AF 是整个音频系统的核心与难点 作为Android系统中的音频中枢 它同时也是一个系统服务 启到承上 为上层提供访问接口 启下 通过HAL来
  • 数据模型建模详解

    问题导读 1 数据层次如何划分 2 如何进行数据划分及命名空间约定 3 ODS层分为几部分 数据层次的划分 ODS Operational Data Store 操作数据层 在结构上其与源系统的增量或者全量数据基本保持 一致 它相当于一个数
  • 基于MATLAB的模糊pi控制器的设计

    基于MATLAB的模糊pi控制器的设计 模糊规则隶属函数的建立 a newfis fuzzypid 添加第一个输入变量e a addvar a input e 1 1 a addmf a input 1 N zmf 1 1 3 a addm
  • 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)

    预备 继上篇 浏览器缓存查看器QCacheViewer 之后 本篇开始QCookieViewer的编写 Cookie技术作为网站收集用户隐私信息 分析用户偏好的一种手段 广泛应用于各大网站 对于网站的精准营销 使用反馈 数据挖掘等具有不可估
  • 华为OD题目:统一限载货物数最小值

    华为OD机试 统一限载货物数最小值 题目描述 火车站附近的货物中转站负责将到站货物运往仓库 小明在中转站负责调度2K辆中转车K辆干货中转车 K辆湿货中转车 货物由不同供货商从各地发来 各地的货物是依次进站 然后小明按照卸货顺序依次装货到中转
  • 2008.06.01 读华为前执行副总裁李玉琢的《我与商业领袖的合作与冲突》有感(二)

    读华为前执行副总裁李玉琢的 我与商业领袖的合作与冲突 有感 二 关于作者的收山之作 利德华福之战 李玉琢如何收拾人心 天地虽小故事多 人生成就有几何 放杯一饮长江水 何计万里波与折 做人虽难仍须做 问心无愧是原则 人间会有公道在 种瓜种豆各
  • Centos7环境下配置IEEE 802.3ad 动态链接聚合(bond4)

    环境 Centos7 6 Vmware 添加2块网卡 查看网卡配置文件 root linux ls etc sysconfig network scripts grep ens ifcfg ens33 查看发现只有一个网卡的配置文件 因此需
  • 牛客题库—软件测试(一)

    下面几种白盒测试技术 哪种是最强的覆盖准则 D 条件组合覆盖 六种覆盖方法中 覆盖准则由弱到强依次是语句覆盖 判定覆盖 分支覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖 路径覆盖 其中 语句覆盖是使得程序中每个语句至少被执行一次 判定覆盖是
  • webpack- JavaScript 应用程序的静态模块打包器

    一 概念 本质上 webpack 是一个现代 JavaScript 应用程序的静态模块打包器 module bundler 当 webpack 处理应用程序时 它会递归地构建一个依赖关系图 dependency graph 其中包含应用程序
  • DrawerLayout的openDrawer()和closeDrawer()方法

    如下代码 DrawerLayout mdrawerLayout Button btn 以上为声明组件 为简便其余过程省略 btn setOnClickListener new OnClickListener mdrawerLayout op
  • Go Web编程实战(8)----创建HTTP与HTTPS服务器端

    目录 创建一个HTTP服务端 ListenAndServe ServeHTTP 方法的使用示例 定义Refer结构体 实现ServeHTTP 方法 创建一个HTTPS服务端 创建证书与私钥 创建HTTPS服务端 创建一个HTTP服务端 其实
  • 2021-07-16

    VUE 生命周期 vm的一生 将要创建 gt 调用beforeCreate函数 创建完毕 gt 调用create函数 将要挂载 gt 调用beforeMount函数 挂在完毕 gt 调用mounted函数 将要更新 gt 调用beforeU
  • 计算机打字盲打方法,练习键盘打字方法 盲打的指法练习

    1 牢记键盘字母的排序 键要是字母键构成 二十六个字母排成了三排 因此手指要会上下灵活伸缩 最长的键是空格键 带一个横箭头标着Enter的是回车键 回车往往有确定 换行 打开的意思 2 打字的时候手势要正确 先把二十六个字母背下来 就像背古
  • docker创建vue编译环境

    docker创建vue编译环境 node的docker获取 docker pull node latest 升级node npm install g npm 8 9 0 to update 安装vue环境 npm config set re
  • cmd命令查找文本文件中的字符串

    cmd命令查找文本文件中的字符串 可以通过findstr命令实现查找文本文件当中的字符串 这样方便提高日志的检索交率 如下图 命令格式 findstr s n aaa C Users 17676 Desktop 667 txt s 在当前目
  • 亲密关系沟通-【信任感】-巩固信任感的沟通方法

    案例 老公答应做家务 同意了 但是总觉得他会忘 提醒他 结果嫌我啰嗦 我们还大吵一架 我真的是一个不会信任对方的人吗 要有信任感 你需要在沟通中成为两个人 1 能让别人信任你的人 2 有能力信任别人的人 其实你不信任ta 不是ta的原因 而
  • APP兼容性测试需要注意哪几点?-alltesting云测试

    由于终端设备的型号多样 机型的碎片化 使得APP兼容性问题在APP测试中成为一个不得不考虑的问题 因为一旦APP有兼容性方面的问题 就会影响这一类的很多用户 对业务的影响会比较大 针对这个问题的测试需要考虑覆盖多种不同的场景 严格来说 兼容
  • 【HDLbits刷题笔记 】04-verilog语法-程序部分

    Always块 组合 由于数字电路由用导线连接的逻辑门组成 因此任何电路都可以表示为模块和分配语句的某种组合 但是 有时这不是描述电路的最方便方法 过程 始终以块为例 提供了描述电路的替代语法 对于合成硬件 synthesizing har
  • Android adb等 获取root权限

    Android adb 获取root权限 1 自己编译的Android 中 adb shell后 自动获取root权限 即显示 而不是 方法 修改 default prop 把ro secure设为0 persist service adb
  • 位段的跨平台问题

    笔者在之前的两篇文章中已经详细的详解了 位段的各种问题 有意者请参考一下 位段的基础知识 大家都不怎么知道位段 参考链接为 位段的基础知识 大家都不怎么知道位段 念君思宁的博客 CSDN博客 对于位段的概念 想必大多数的C语言学者 都是不知