sizeof不是函数,而是运算符,C/C++语言编译器在预编译阶段的时候就已经处理完了sizeof的问题,也就是说sizeof类似于宏定义。

下面给出一个sizeof的一个宏定义实现版本

#define sizeof(L_Value) ((char*)(&L_Value + 1) - (char*)(&L_Value))

实验一:

#define mysizeof(L_Value) ((char*)(&L_Value + 1) - (char*)(&L_Value))

int main(){

int a[5]={1,2,3,4,5};

printf("%d",mysizeof(a));

char c=getchar();

return 0;

}

输出:20

不过本文的mysizeof只能对已定义的变量求大小

实验二:

#define mysizeof(L_Value) ((char*)(&L_Value + 1) - (char*)(&L_Value))

int main(){

int a[5]={1,2,3,4,5};

printf("%d",mysizeof(&a));

char c=getchar();

return 0;

}

此时会报语法错误,因为&a并不是我们定义的变量,详细说是&a不是左值,用宏替换后变为((char*)(&&a + 1) - (char*)(&&a)),&&a有语法错误。 我们的版本还是不够强大啊,不知道C语言设计中是怎么实现的sizeof(&a)计算。

c语言 实现sizeof功能,C语言简单实现sizeof功能代码相关推荐

  1. c语言 数据类型和 scanf函数的简单使用 sizeof 函数的使用

    #define _CRT_SECURE_NO_WARNINGS 1 //放在第一行#include <stdio.h>// //int main() //{ 字符类型 // char ch ...

  2. php简易留言板功能,PHP实现简单留言板功能的方法

    这篇文章主要为大家详细介绍了PHP简单留言板功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 具体内容如下: index.php error_reporting(0); //关闭NOT ...

  3. java商品搜索功能_JavaWeb实现简单查询商品功能

    本文实例为大家分享了javaWeb实现简单查询商品功能的具体代码,供大家参考,具体内容如下 CustomerServlet.java package com.subing.web; import ja ...

  4. xml内容过多装不下,怎么实现下滑功能(最简单的下滑功能实现)

    到xml页面代码里把androidx.constraintlayout.widget.ConstraintLayout 直接改成ScrollView 改完会提示报错,快速修改就行.

  5. 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...

    时间:2019-05-15 12:55:15 作者:admin 计算器实验报告 班级: 07计本(1)班 姓名: 王林 学号: 20706031047 指导老师: 韩静 一. 需求分析 (1)制作一个 ...

  6. python服务端语言_使用Python实现简单的服务器功能

    socket接口是实际上是操作系统提供的系统调用.socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apach ...

  7. Redis-Lua语言:简单小巧但功能强大

    Lua Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式程序移植到其他应用程序,它是由C语言实现的,虽然简单小巧但是功能强大,所以许多应用都选用它作为脚本语言,尤其是在游戏领 ...

  8. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  9. Java语言具有功能强大和简单易用的两个特征

    在国内IT行业招聘中,大量的招聘需求都是和Java相关,且比例还在上升.巨大的人才缺口直接导致各企业纷纷以高薪聘请Java人才.那么,Java工程师的职业发展路径是什么样的?小白入门Java后,成长路 ...

  10. C语言 编程实现简单的计算器功能

    编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式: 操作数1 运算符op 操作数2 计算并输出表达式的值,其中算术运算符包括:加(+).减(-).乘().除(/).^(次幂). 要求使其能进 ...

最新文章

  1. Python基础03 序列
  2. SQL基础【十一、分页 limit top rownum】
  3. 开漏(open drain)和开集(open collector)
  4. MyEclipse 10的使用技巧
  5. 2021-08-21 mvc架构
  6. 基于python+django框架+Mysql数据库的新闻信息管理系统设计与实现
  7. [imblearn]-欠采样模型合集
  8. HTML是什么?HTML简介
  9. 第三章:使用HiTool下载程序
  10. 商标不仅仅是个标记,更是企业的无形资产和价值财富!
  11. 计算机网络吞吐量计算
  12. LINUX查看IP 网关 DNS
  13. C语言谭浩强第三版第八章例题及课后题:函数
  14. 谷歌,互联网界的“彩蛋狂魔”
  15. Flutter路由管理和接收页面的返回值
  16. Synopsys Formality 2018操作流程
  17. curl 支持ws吗_使用CURL请求WebService | 字痕随行
  18. 太经典了!NBA球员超逗的豪言壮语
  19. P2P想借壳上市?只能看命了
  20. 手撕线程池 ThreadPool

热门文章

  1. htmlbuilder php phantomjs
  2. 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
  3. 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x003E2000).错误
  4. Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.3.xsd).
  5. input的表单验证(不断更新中~~)
  6. 转:HTTP请求(GET、POST和soap区别)和响应
  7. 推荐几本对创业者很有用的书籍
  8. WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
  9. 看你能坚持几秒 代码
  10. Redis Lua脚本中学教程(上)