sizeof(函数名)=?
sizeof(函数名)=?
直接上代码
#include <stdio.h>int foo(void)
{printf("hello\n");return 0;
}int main(void)
{printf("%lu\n", sizeof(foo));printf("%lu\n", sizeof(&foo));printf("%lu\n", sizeof(foo()));
}
假设保存为文件 1.c
编译:
$ gcc -Wall -pedantic 1.c -std=c99
warning: invalid application of ‘sizeof’ to a function type [-Wpointer-arith]printf("%lu\n", sizeof(foo));
运行结果是:
1
8
4
解释:
-pedantic 选项:显示所有的 ISO C 和 ISO C++ 警告。
对于 sizeof(foo),我觉得应该是函数指示符自动转换成指针,答案应该是 8,但是并不是这样,编译器得出 1. 看来标准不允许把函数指示符作为 sizeof 的操作数,或者说这么做没有意义。
sizeof(&foo):函数指示符被显式地转换成指向函数的指针,所以答案是 8
sizeof(foo()):sizeof 的操作数是函数的返回类型,所以是 4
【End】
sizeof(函数名)=?相关推荐
- C++中的sizeof函数
C++中的sizeof()函数我们常常会见到,但是更多的是只是熟悉,而并没有真正的了解过,下面就对这个函数做一个深入的介绍. sizeof是C/C++中的一个操作符(operator),其作用就是返回 ...
- 数组名不等于指针---sizeof()函数求数组大小错误问题
前言: 今天在项目中需要求采样点的数量并且遍历,采样点用数组存储,自定义了一个函数想要用sizeof求其长度,然后遍历,结果失败了,查阅之后发现以下问题: 在main函数中,sizeof是可以正常工作 ...
- c/C++计算int / int *数组的长度;sizeof(指针),sizeof(数组名)的区别
1.计算int *数组长度: int arrayVlenth(float *p) {int len = 0;while (*p){p++;len++;}return len; } sizeof(指针) ...
- 编写OD插件将IDA中分析出来的函数名导入到OD中
逆向程序的时候,喜欢用IDA静态分析,用OD动态调试,如果把IDA分析出来的函数名称都导入到OD中,调试的时候就知道哪些函数不需要再看了.以前我一直用GODUP的map loader,但是有些时候感觉 ...
- 剖析数组名、函数名(不是指针常量,更不是指针)
对于一个数组,如 int a[4]; 如果只是给出数组名a,编译器不知道该取该数组的第几个元素,因此编译器不会自动取值,而是返回该数组的首地址(第一个元素的地址).其实,数组名a就是数组本身,并不是 ...
- arm64动态链接库通过函数名获取函数偏移
基本思路是分析elf文件, 首先遍历节区头部Elf32_Shdr查看sh_type属性值,得到属性值为SHT_DYNSYM的节区. 其次通过名字遍历节区结点,找到类型为STT_FUNC并且名字与其相同 ...
- C++/C中 sizeof(指针)和sizeof(数组名)的区别
1.sizeof(array)/sizeof(int)的含义 array是个数组 sizeof (array)就是这个数组所占的内存总量(字节数), sizeof(int)就是单个所占的内存. 所以呢 ...
- linux c变量命名规则,C语言中变量名及函数名的命名规则与驼峰命名法
在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...
- android 函数名注册,Android JNI 函数注册的两种方式(静态注册/动态注册)
在Android开发中,由于种种原因我们需要调用C/C++代码, 这个时候就要用到Android开发者都听说过的JNI(Java Native Interface)了, 在调用JNI相关方法之前, 要 ...
最新文章
- 【 MATLAB 】范数的必备基础知识
- echo -n 和echo -e 参数意义
- Html 教程 (9)列表
- 【论文相关】 技术性论文结构剖析
- python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)
- 工业视觉镜头NAVITAR
- OpenCV之cvSmooth函数平滑滤波
- 微软大数据_我对Microsoft的数据科学采访
- 求解九宫格的Java_使用全排列方法解九宫格问题
- mysql 排名_SQL语句mysql排名、分组后组内排名、取各组的前几名
- 如何抓取(采集)大众点评网的坐标(经纬度)信息
- web前端素材整理汇总
- 【WPF】命令 --《深入浅出WPF》
- MySQL闪退解决办法
- python+requests爬取汽车之家二手车
- 桥本分数式(用递归法实现全排列)
- java 逆矩阵_用Java实现求逆矩阵
- c语言实现的学生信息查询系统
- 神经网络相关的概念和术语
- 2017年中国大数据发展趋势和展望解读(上)