在结构体内定义位,节省空间

  1. /*
  2. * size是字节数
  3. * addr是打印的起始地址
  4. */
  5. static void printb(void * addr,size_t size){
  6. for(int i=;i<size;i++){
  7. uint8_t tmpChar=((uint8_t*)addr)[i];
  8. // printf("%x ",tmpChar);
  9. for(int j=;j<;j++){
  10. uint8_t get_value=<<(-j-);
  11. printf("%d",(get_value&tmpChar)?:);
  12. }
  13. printf(" ");
  14. }
  15. printf("\n");
  16.  
  17. }
  18.  
  19. int main(int argc, char **argv) {
  20. struct test {
  21. unsigned a :;
  22. unsigned b :;
  23. unsigned c :;
  24. unsigned d :;
  25. };
  26. test t;
  27. memset(&t,,sizeof(t));
  28. t.a=;
  29. t.b=;
  30. t.c=;
  31. t.d=;
  32. printf("%d\n", sizeof(t));
  33. printb(&t,sizeof(t));
  34. }

结果

由于对齐原因,这里的struct依旧使用可4字节,通过#pragma pack(n)可以定义对齐的字节数

这里可以用bit代替bool,节省空间,在网络通信里还可以以此节约流量

unsigned 变量名:n的更多相关文章

  1. C语言中变量名及函数名的命名规则与驼峰命名法

    一.C语言变量名的命名规则:(可以字母,数字,下划线混合使用) 1. 只能以字母或下划线开始:2. 不能以数字开始:3. 一般小写:4. 关键字不允许用(eg:int float=2//error  ...

  2. JavaScript:声明变量名的语法规则

    一.语法规则 1.变量必须使用字母.下划线(_)或者美元符($)开始. 2.然后可以使用任意多个英文字母.数字.下划线(_)或者美元符($)组成. 3.不能使用JS关键词与保留字. 二.示例 var ...

  3. JS中变量名和函数名重名

    今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的: var a=100; function a(){ console.log(a ...

  4. 使用 v-cloak 防止页面加载时出现 vuejs 的变量名

    使用 vuejs 做了一个简单的功能页面,逻辑是,页面加载后获取当前的经纬度,然后通过 ajax 从后台拉取附近的小区列表.但是 bug 出现了,在显示小区列表之前,会闪现小区名对应的 vuejs 变 ...

  5. C#中根据变量获取变量名字符串

    /// <summary>         /// 获取当前变量的变量名 字符串         /// 调用:GetVarName(p=>test.str1); 返回 " ...

  6. C/C++变量名与值的问题

    首先说明变量名是不占空间的. 变量:用来标识一块内存空间,这块内存区域的值一般是可以被该的. 而const常量通常限定这一块内存区域的值是不可被更改的. 变量名:只是一个标识符,并不占内存空间.在c的 ...

  7. JS中变量名作为if条件的 true/flase

    在Javascript中,可以直接将变量名放到if条件中, var a;//甚至不定义 if (a){ //... } 以下情况被认为是flase: 1.''空的字符串 2.数字0 3.对象null ...

  8. 读入一个c程序,并按字母表顺序分组打印变量名,每组前N个字符相同(TCPL 练习6-2)

    在建立结构tnode的过程中,我们没有预设门槛.这道题目就设置了门槛,必须根据前N个字符来进行分组,于是排除了长度小于N的变量,以便减轻负担. 因为要求对变量名分组打印,组别理所应当地应该按照至少是升 ...

  9. 解决ambiguous symbol命名空间中类名、变量名冲突的问题

    最近在将一个复杂的工程集成到现有的项目中.编译时发现,有的变量名冲突了,提示就是xxxx ambiguous symbol,并且在编译输出时,指明了两个文件当中特定的变量名或者类名相同.出现这个编译错 ...

随机推荐

  1. 在Hmtl页面中只让其中单独的一个div隐藏滚动条但是仍可滚动浏览下边的内容

    <style> .box ::-webkit-scrollbar {width: 0px;} </style> <div class="box"> ...

  2. 老男孩python学习自修第十天【三元表达式与lambda表达式】

    例如: 1.使用三元表达式给变量赋值 result = '空' if x == None else x 2.使用lambda定义函数 add = lambda x, y: x+y

  3. EmpireCMS的使用

    1.下载安装empirecms 下载完成后解压将upload目录整体上传到服务器,并更名为empirecms_test 更改目录文件的权限: chmod -R 777 empirecms_test 配 ...

  4. python requests上传文件 tornado 接收文件

    requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'fil ...

  5. replace只能输入小数

    case "checkPrice": tr.find(".layui-table-edit").keyup(function () { var $input = ...

  6. 今天开始学习模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。

    话说上一次写这个笔记是13年的事情了···那时候忙着实习,找工作,毕业什么的就没写下去了,现在工作了有半年时间也算稳定了,我会继续把这个笔记写完.其实很多章节都看了,不过还没写出来,先从第5章开始吧, ...

  7. jedis单机版应用

    1.pom文件添加依赖: 2.创建配置文件 创建单机版redisClient 代码: package com.skymall.rest.dao.imp; import org.springframew ...

  8. 性能测试工具 Locust

    https://docs.locust.io/en/latest/quickstart.html

  9. 一个服务器创建两个MySQL

    转载:http://www.2cto.com/database/201412/357863.html 将已安装的数据库文件夹复制到另一个目录下 打开复制目录下的my.ini文件修改 [client] ...

  10. PIGS POJ - 1149(水最大流)

    题意: 有M个猪圈,每个猪圈里初始时有若干头猪.一开始所有猪圈都是关闭的.依次来了N个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪.每个顾客分别都有他能够买的数量的上限.每个顾客走后,他打开 ...