【每日一C之二十四】sizeof结构体探究
来源:互联网 发布:自学java好找工作吗 编辑:程序博客网 时间:2024/05/22 17:33
每日一C之sizeof结构体
每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。
今日贝壳:C++结构体支持成员函数,这种条件下sizeof有什么特征
关于结构体sizeof的基础,可阅读【每日一C之三】struct字节对齐方式。
1.空结构体:
当struct结构体为空时,sizeof的结果是什么?为了能访问该空结构体,编译器必须为其分配一定的内存空间,分配内存空间的大小与编译器有关,VC下是1个字节的大小。
2.含普通成员函数的结构体:
当struct结构体含有普通成员函数时,sizeof该结构体时,成员函数不影响sizeof的值。普通成员函数不占用内存。
3.含有虚函数的结构体:
C++结构体可以通过virtual定义虚成员函数,目前还不太清楚这种虚成员函数具体的用法。含有虚成员的结构体,系统会自动使用一个指针为其维护虚函数表,故sizeof时需要加上一个指针的大小。
牛刀小试:
结果:sizeof (a) : 1
sizeof (b) : 4
sizeof (c) : 8
a是一个空指针,编译器分配了一个字节的空间。b大小为4,为int 型id的大小。c大小为8,int型id大小为4,一个系统分配的指针大小为4,加起来为8。
结构体的这些特征,可类比到C++的类。
Have a nice day !
4 0
- 【每日一C之二十四】sizeof结构体探究
- 【每日一C之二】sizeof 与 strlen
- 【每日一C之十四】指向函数的指针
- 每日算法之二十四:Implement strStr()
- 【每日一C之十八】自引用结构
- 【每日一C之二十】 悬空指针
- 【每日一C之二十一】判断栈增长方向
- LLVM每日谈之二十四 Google的ClangMR
- C语言:sizeof(结构体)
- 漫谈兼容内核之二十四:Windows的结构化异常处理(一)
- 漫谈兼容内核之二十四:Windows的结构化异常处理(一)
- 【每日一C之二十二】strncpy与strcpy的区别
- 【每日一C之二十三】堆与栈的深入理解
- c语言 sizeof()求结构体大小
- Visual Studio 2008 每日提示(二十四)
- Visual Studio 2008 每日提示(二十四)
- 每日英语阅读(二十四)
- 每日一C-- 信号量结构体 利用信号实现进程间通信 初始化调用杀死
- POJ 2142 The Balance 解题报告(模线性方程)
- 自定义securityFilter过滤链
- 关于淘汰85%面试者的百度开发者面试题的看法
- SSH无密码原理
- java apache commons HttpClient发送get和post请求的学习整理
- 【每日一C之二十四】sizeof结构体探究
- Android (shape,gradient)使用总结
- tomcat集群配置
- 国人吃盐成本:像烧油一样居全球前列
- Matlab实现PCA
- css设置属性
- 哈夫曼编码
- [Unity3D]Script 脚本所有编译器属性详解
- 把帧分成场就可以减少大面积闪烁现象的原因解释