首页 > 其他分享 >关于C/CPP使用结构体中位域的一些笔记

关于C/CPP使用结构体中位域的一些笔记

时间:2024-10-12 13:50:17浏览次数:8  
标签:bTwo bThree 体中 CPP stBin 位域 BYTE bOne bFour

工作中软件通讯用到了结构体,在解析时,对应第一个变量在高位还是低位一直记不住。故计此博客作为笔记

typedef struct _stBin
{
	BYTE bOne : 2; 
	BYTE bTwo : 2;
	BYTE bThree : 2;
	BYTE bFour : 2; 
	_stBin()
	{
		bOne = 0;
		bTwo = 0;
		bThree = 0;
		bFour = 0;
	}
}stBin;

以上述结构体为例

stBin a;
a.bFour = 0;
a.bThree = 1;
a.bTwo = 2;
a.bOne = 3;

BYTE b = 0;
::CopyMemory(&b, &a, sizeof(stBin));

执行以上程序后a,b的值分别为:

可以看到成员变量是从上到下占用从低到高的比特位;

标签:bTwo,bThree,体中,CPP,stBin,位域,BYTE,bOne,bFour
From: https://www.cnblogs.com/Lina0205/p/18460361

相关文章

  • tour cpp: std::variant 实现无继承层次的访问者模式
    std::variant是基于模板而实现的一种包括了一个标志位的高级union对象;可以完全替代如下场景:structst{inttype;unionun{inti;floatf;};};#include<iostream>#include<variant>template<class...base>structoverloaded:bas......
  • 绘图工具Origin 2024简体中文版百度云
    如大家所了解的,Origin是一款功能强大的图形可视化和数据分析软件,也是科研人员和工程师常用的数据分析和制图工具。Origin为初学者提供了一个易于使用的界面,并且随着用户对应用程序的熟悉,结合了执行高级定制的能力。目前最新为Origin2024版本。Origin8.0-2024: https://pan......
  • 3dmax简体中文版百度云资源下载(附教程)
    如大家所熟悉的,3dmax是一款基于PC系统的三维动画渲染和制作软件。其广泛应用于广告、影视、工业设计、建筑设计、三维动画、多媒体制作、游戏、以及工程可视化等领域。3dsmax自用安装包、教程自用:https://pan.baidu.com/s/1D52GYEVeTN-ffCXsd4oK9Q?pwd=15133dmax学习方法......
  • 2024 最新 Navicat Premium 17.1.5 简体中文版(亲测可用)
    步骤如下:一、官网下载安装包:https://www.navicat.com.cn/download/navicat-premium  二、安装NavicatPremium17  注意:安装完后不要打开已打开自行退出三、补丁下载关注后发送“navicat17”即可获取补丁下载地址,无套路。 四、安装补丁先将下载下来的压缩包里面......
  • 探究AudioPolicyManager.cpp中的成员变量mAvailableOutputDevices/InputDevices是根据
    2024-09-2310:29:48.792286-445APM-AudioPolicyEnginepid-286Wframeworks/av/services/audiopolicy/enginedefault/src/Engine.cpp:getDeviceForStrategyInt:2782024-09-2310:29:48.792286-445AudioFlingerpid......
  • vs code如何配置C/C++环境,实现完美运行.c/.cpp文件,以及终端乱码问题
    环境配置在VisualStudioCode(VSCode)中安装了C/C++ExtensionPack后,你可以通过以下步骤来运行C++文件:安装编译器配置编译任务:在VSCode中,你可以创建一个编译任务来编译你的C++文件。这通常通过创建一个tasks.json文件来完成。你可以通过以下步骤创建......
  • llama.cpp推理流程和常用函数介绍
    llama.cpp是一个高性能的CPU/GPU大语言模型推理框架,适用于消费级设备或边缘设备。开发者可以通过工具将各类开源大语言模型转换并量化成gguf格式的文件,然后通过llama.cpp实现本地推理。经过我的调研,相比较其它大模型落地方案,中小型研发企业使用llama.cpp可能是唯一的产品落地方案......
  • vs code如何配置C/C++环境,实现完美运行.c/.cpp文件,以及终端乱码问题
    环境配置在VisualStudioCode(VSCode)中安装了C/C++ExtensionPack后,你可以通过以下步骤来运行C++文件:安装编译器配置编译任务:在VSCode中,你可以创建一个编译任务来编译你的C++文件。这通常通过创建一个tasks.json文件来完成。你可以通过以下步骤创建这个......
  • Qt项目中,在main.cpp中定义了一个自定义组件,但是在编译的时候报错`undefined reference
    1、问题描述我在测试Qt项目的main.cpp中编写了如下代码:classMyWidget1:publicQWidget{Q_OBJECT};//main程序入口argc命令行变量的数量argv命令行变量的数组intmain(intargc,char*argv[]){//应用程序对象,在Qt中应用程序对象有且仅有一个QAppl......
  • 2024 最新 Navicat Premium 17.0.13 简体中文版(亲测可用)
    步骤如下:一、官网下载安装包:https://www.navicat.com.cn/download/navicat-premium  二、安装NavicatPremium17  注意:安装完后不要打开已打开自行退出三、补丁下载关注后发送“navicat17”即可获取补丁下载地址,无套路。 四、安装补丁先将下载下来的压缩包里面......