---------------------------------------------
-- 时间:2018-12-29
-- 创建人:Ruo_Xiao
-- 邮箱:xclsoftware@163.com
---------------------------------------------

一、源码

//    非数组的sizeof
#defne _sizeof(T) ( (size_t)((T*)0 + 1))//    数组的sizeof
#define array_sizeof(T)   ( (size_t)(&T+1)  - (size_t)(&T)  )

二、解释

1、指针变量 + 1 ,这里 + 的是指针类型对应的字节数。

栗子:

_sizeof(double)

其过程如下:

1、(double *)0                  //    0x0000 0000
2、(double *)0 + 1              //    0x0000 0008
3、(size_t)((double *)0 + 1)    //    8    (十六进制转十进制)

2、对于数组对应的sizeof比较特殊,举例说明。

int iSum[3];

这里的 &iSum 的指针类型是 int(*)[5],该类型所占的字节大小是5*4=20,故 ( (size_t)(&T+1)  - (size_t)(&T)  ) 的值为20。

(SAW:Game Over!)

sizeof 宏实现的方法相关推荐

  1. office2003/2007/2010版本降低宏安全设置方法

    如果在公司内部环境中,因为各种系统对Office环境的要求,需要通过降低Office宏安全性的方法来提高系统访问效率的话,可以参考一下方法设置.   Office2003所需的设置如下:   1.打开 ...

  2. 使用宏基因组的方法快速鉴定新冠病毒SARS-CoV2

    使用宏基因组的方法快速鉴定新冠病毒SARS-CoV2 一.如果不考虑成本,可以使用宏基因组测序的方法来快速鉴定新冠病毒SARS-CoV2,这种方法无需扩增.分析简单.准确度高.原理是直接将测序得到的序 ...

  3. c语言中sizeof函数的用法,sizeof函数怎么用 sizeof函数的使用方法

    sizeof函数是pascal语言当中的一种内存容量度量的函数,这一个函数计算得到的结果是返回一个变量或者一个类型的大小;在c语言当中,sizeof函数这是一个能够判断数据类型,或者是表达式长度的一个 ...

  4. BMC Biology | 中科院北京基因组所李明锟组建立微量样本的宏基因组学研究方法...

    从pg级DNA中获得高效.高保真的宏基因组数据:文库制备方法和去污染算法的评估 Toward efficient and high-fidelity metagenomic data from sub ...

  5. SlickEdit 的宏解析设置方法

    2019独角兽企业重金招聘Python工程师标准>>> #define DefineProHInit(_Struct_) DefineVal(_Struct_); \void Ini ...

  6. G502使用计算机配置,解决方案:Logitech G502宏设置教程方法

    如果您想在玩游戏时得到电竞玩家的反应和要求,可以在游戏中进行各种组合操作时使用宏操作.这种操作只是批处理,意味着设置一系列要按顺序执行的动作,因为该操作的每个步骤都是预先记录的,然后由计算机执行,所以 ...

  7. [置顶]C#执行Excel宏模版的方法

    在项目中如果涉及到用Excel开发的报表模版来导出报表数据的话,一般都是在Excel报表中使用VBA做成宏来进行调用.即先使用Excel自带的VBA开发好报表模版,然后再将模版程序放在固定目录下,在管 ...

  8. office2007无法使用宏的解决方法

    office2007打开时连续弹出几个对话框,分别是: "对话框打开时命令无法执行.单击'确定',然后关闭对话框以继续.". "此文档有宏.该应用程序的宏语言支持功能被取 ...

  9. 润乾报表数据集中参数和宏的使用方法

     下面我们来看一下如何在数据集中加入参数使得报表变得更加灵活. 第一步:单击主菜单中的[配置]->[参数]. 弹出"参数编辑"窗体,如下图所示: 第二步:点击[增加]按钮 ...

最新文章

  1. Find Minimumd in Rotated Sorted Array
  2. jvm性能调优 - 03垃圾回收机制
  3. git 提交命令_工作总结:Git的学习和使用,最详细的Git教程,从入门到精通
  4. appium 搭建及实例
  5. 欧拉通路 java,欧拉回路
  6. 用Crossdev安装MIPS交叉编译工具链
  7. jsbridge原理_React Hooks 原理与最佳实践
  8. 支付宝推生物识别;Google 爆重大隐私问题;TensorFlow 2.0 即将发布 | 极客头条
  9. 驱动研究日记-内核同步
  10. python123新版个人所得税计算请输入正数_Python训练的数字组合,个人所得税计算,完全平方数,python,之...
  11. 亚马逊云科技荣获2021中国公有云平台用户满意度第一
  12. 简易应用服务器配置要求计算公式
  13. minigui源码学习
  14. Spelling Error Correction with Soft-Masked BERT
  15. python做日历牌_2021年来了,从Python定制一份日历开始吧!
  16. CMake I 获取/设置编译器
  17. 华天软件 SINOVATION 9.1 自主可控三维CAD内核CRUX IV 历史由来
  18. 【网页全屏截图问题总结】
  19. Kernel Crypto框架
  20. 合并两个排序的链表——《剑指offer》

热门文章

  1. Start – Modern minimalist OpenCart 2.X 自适应主题模板 ABC
  2. jQuery用面向对象的思想来编写验证表单的插件
  3. ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态
  4. 035、Linux下Dmidecode查看硬件信息
  5. 问题战略[置顶] 十八年开发经验分享(四)问题解决篇(下)
  6. #翻译NO.5# --- Spring Integration Framework
  7. looper message handler之间的关系
  8. 2012年初的10个绝对让你惊喜的jQuery插件
  9. 软件项目经理新手上路2 - 力量从哪里来?
  10. 专家:四大问答指出混合云的应用之路