c语言 实现sizeof功能,C语言简单实现sizeof功能代码
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功能代码相关推荐
- c语言 数据类型和 scanf函数的简单使用 sizeof 函数的使用
#define _CRT_SECURE_NO_WARNINGS 1 //放在第一行#include <stdio.h>// //int main() //{ 字符类型 // char ch ...
- php简易留言板功能,PHP实现简单留言板功能的方法
这篇文章主要为大家详细介绍了PHP简单留言板功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 具体内容如下: index.php error_reporting(0); //关闭NOT ...
- java商品搜索功能_JavaWeb实现简单查询商品功能
本文实例为大家分享了javaWeb实现简单查询商品功能的具体代码,供大家参考,具体内容如下 CustomerServlet.java package com.subing.web; import ja ...
- xml内容过多装不下,怎么实现下滑功能(最简单的下滑功能实现)
到xml页面代码里把androidx.constraintlayout.widget.ConstraintLayout 直接改成ScrollView 改完会提示报错,快速修改就行.
- 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...
时间:2019-05-15 12:55:15 作者:admin 计算器实验报告 班级: 07计本(1)班 姓名: 王林 学号: 20706031047 指导老师: 韩静 一. 需求分析 (1)制作一个 ...
- python服务端语言_使用Python实现简单的服务器功能
socket接口是实际上是操作系统提供的系统调用.socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apach ...
- Redis-Lua语言:简单小巧但功能强大
Lua Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式程序移植到其他应用程序,它是由C语言实现的,虽然简单小巧但是功能强大,所以许多应用都选用它作为脚本语言,尤其是在游戏领 ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
- Java语言具有功能强大和简单易用的两个特征
在国内IT行业招聘中,大量的招聘需求都是和Java相关,且比例还在上升.巨大的人才缺口直接导致各企业纷纷以高薪聘请Java人才.那么,Java工程师的职业发展路径是什么样的?小白入门Java后,成长路 ...
- C语言 编程实现简单的计算器功能
编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式: 操作数1 运算符op 操作数2 计算并输出表达式的值,其中算术运算符包括:加(+).减(-).乘().除(/).^(次幂). 要求使其能进 ...
最新文章
- Python基础03 序列
- SQL基础【十一、分页 limit top rownum】
- 开漏(open drain)和开集(open collector)
- MyEclipse 10的使用技巧
- 2021-08-21 mvc架构
- 基于python+django框架+Mysql数据库的新闻信息管理系统设计与实现
- [imblearn]-欠采样模型合集
- HTML是什么?HTML简介
- 第三章:使用HiTool下载程序
- 商标不仅仅是个标记,更是企业的无形资产和价值财富!
- 计算机网络吞吐量计算
- LINUX查看IP 网关 DNS
- C语言谭浩强第三版第八章例题及课后题:函数
- 谷歌,互联网界的“彩蛋狂魔”
- Flutter路由管理和接收页面的返回值
- Synopsys Formality 2018操作流程
- curl 支持ws吗_使用CURL请求WebService | 字痕随行
- 太经典了!NBA球员超逗的豪言壮语
- P2P想借壳上市?只能看命了
- 手撕线程池 ThreadPool
热门文章
- htmlbuilder php phantomjs
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
- 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x003E2000).错误
- Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.3.xsd).
- input的表单验证(不断更新中~~)
- 转:HTTP请求(GET、POST和soap区别)和响应
- 推荐几本对创业者很有用的书籍
- WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
- 看你能坚持几秒 代码
- Redis Lua脚本中学教程(上)