C++基础--struct的大小
在修改别人的代码的过程中,发现很多人会把struct和struct的定义混淆,在这里主要是为了提醒自己Struct定义的规范性。
#include <stdio.h>
struct x{
int a;
char b;
};
typedef struct g{
int a;
char b;
}G;
int main()
{
int a;
char b;
int m = sizeof(a);
int n = sizeof(b);
printf("size of int is %d\n", m);
printf("size of char is %d\n", n);
int x = sizeof(x);
int y = sizeof(G);
printf("size of struct is %d\n", x);
printf("size of struct G is %d\n", y);
return 0;
}
运行的结果为:

在这里Struct G的大小为8是因为:字节对齐,说明Struct在默认情况下,就已经做了字节对齐。
C++基础--struct的大小的更多相关文章
- c/c++ struct的大小以及sizeof用法
直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则:(在没有#pragma pack宏的情况下) 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成 ...
- C#基础--struct(结构体)
结构体和类有点类似 我们定义一个类的时候 是class 类名 定义结构体的时候是 struct 结构体名 结构体的写法 struct Point { // public int ...
- golang获取packed struct的大小
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd ...
- C++基础--class的大小
在这里列出了空类,类有函数,值,没有函数的大小,注意Class也是默认字节对齐 #include <stdio.h> class x { }; class cx { public: cx( ...
- Python网络编程基础 struct模块 解决黏包问题 FTP
struct模块 解决黏包问题 FTP
- Python网络编程基础 ❸ struct模块 基于upd的socket服务
struct模块 基于upd的socket服务
- C語言中資料結構(struct)的大小
通常在PC上寫程式時,很少會去管struct會佔掉多少記憶體.當要使用到時,也不會想去用手算到底佔掉多少,大多是直接使用sizeof來做計算.然而sizeof計算出來的值往往不會如我們想的一樣.因為c ...
- union与struct以及大小端
两者的区别: 1. 共用体和结构体都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在. 2. 对于共用体的不同成员赋值, 将会对其它 ...
- struct与union字节大小的终极解释
1.字节对齐的细节和编译器实现相关,但一般而言,如在windows下,就VC而言,满足一下三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除:2) 结构体每个成员相对于结构体首地址 ...
随机推荐
- L2-2 小字辈 (25 分)
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号.随后第二行 ...
- mkvirtualenv创建python虚拟环境
为什么要创建虚拟环境呢? 如果在我们本地开发好几个项目,每个项目又用到很多第三方插件,如果没没用创建虚拟环境,那么本地项目插件就会很多很乱,如果有虚拟环境就不一样了 虚拟环境安装 pip instal ...
- C语言实现全排列和回溯法总结
一.递归实现全排列 #include"cstdio" ]; void print_permutation(int n,int *A,int cur){ if(cur==n){ ;i ...
- golang mcall
// func mcall(fn func(*g)) // Switch to m->g0's stack, call fn(g). // Fn must never return. It sh ...
- DP Intro - poj 1947 Rebuilding Roads(树形DP)
版权声明:本文为博主原创文章,未经博主允许不得转载. Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissi ...
- 源码安装caffe2时遇到的问题解决办法
https://github.com/facebookresearch/DensePose/issues/119
- jQuery练习 | 复选框及编辑模式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- HTML基础笔记
html基础 (1)什么是html?超文本标记语言 用于开发网页的语言,由浏览器解释执行 (2)html文件的基本结构 <html> <head> <title>& ...
- java中String,StringBuffer与StringBuilder的区别??
本文着重介绍下,应该在何时恰当的使用string,stringbuffer,stringbuilder. 1,执行速度 StringBuilder > StringBuffer > ...
- 《Crafting Rails 4 Applications》的笔记-第28页
进行邮件测试,你需要在dummy目录下的虚拟程序添加一个配置 In your config/enviroments/test.rb, by default you should have the li ...