题目:空结构体和空类的大小
来源:互联网 发布:工业乙醇的蒸馏数据 编辑:程序博客网 时间:2024/05/20 03:38
空结构体和空类
- 空结构体
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
typedef
empty{}a;
int
main()
{
printf
(“%d”,
sizeof
(a));
}
以上代码如果采用gcc编译结果是0;采用g++结果是1;vs2008下如果文件名后缀为.c出现编译错误:C 要求一个结构或联合至少有一个成员;文件名后缀为.cpp能通过编译输出结果是1.
ps:这里发现一个现象,vs下采用不同文件名后缀会调用不同的编译器。这和GNU中的gcc、g++编译器差不多,如果后缀是.c,gcc都当做c程序处理,g++当做c++程序处理。如果后缀是.cpp,gcc和g++都当做c++程序处理。
- 空类
1
2
3
4
5
6
7
8
9
10
#include<iostream>
using
namespace
std;
class
empty{}a;
int
main()
{
cout<<
sizeof
(a)<<endl;
return
0;
}
以上代码在g++和vs下编译运行结果都是1;
那么空类的大小为什么是1呢,上网查了一下,主流观点认为类的实例化要求每个实例在内存中都有独一无二的地址,所以编译器给空类定义大小为1,这样该类的不同实例就有了不同地址。
- 为什么要使用空结构体和空类
研究空结构体和空类绝不仅仅是为了解决其大小个问题,当然如果你认为这个问题很有意思我也没办法。目前除了查到空结构体和空类有占位的作用还没查到有别的用途。也就是在代码未成型之前,保证能编译通过的前提下,先写出一个代码架构来,这个时候空结构,空类还有空函数能起到占位的作用。
0 0
- 题目:空结构体和空类的大小
- 空类和空结构体的大小
- 空类与空结构的大小
- 空类与空结构的大小
- 空类与空结构体大小
- C++中空类和空结构体大小的问题?
- 空结构体(类)的大小
- 【常见面试题目C++系列】C++中空类和空结构体大小(sizeof)详谈
- 空类和空结构体
- 空结构体和空类
- 空结构体和空类
- 空结构体和空类
- 空结构体与空指针的大小
- 空结构和空类
- C++ 结构体嵌套、空结构体和空类
- 空类的大小
- 空类的大小
- 空类以及空类的大小
- [信息论]信道容量的迭代算法的JAVA实现
- 前端能力模型-V8 JS引擎
- 计算机字、字长理解
- 字符串消除
- 第四周项目1.3使用有默认参数的构造函数
- 题目:空结构体和空类的大小
- 欢迎使用CSDN-markdown编辑器
- Android LayoutInflater学习
- BAT命令
- Fragment与Fragment之间的数据通信
- 项目1.4在构造函数中使用参数初始化表对数据成员初始化
- 第四周项目1-三角形类的构造函数-有默认参数的构造函数
- 消息总线扩展之面向消息的数据集成
- POJ 1696 || Space Ant (叉积,凸包变形题