当前位置: 首页 > news >正文

ps做网站字体用多大的北京新鸿儒做的网站

ps做网站字体用多大的,北京新鸿儒做的网站,建盏厂家,谷歌google 官网下载1. 结构体对齐 要点 变量只能存储在他的长度的整数倍地址上结构体整体对齐跟他的最长的字段整数倍对齐 栗子1 struct Example1 {char a; //1个字节int c; //4个字节short b; //2个字节 };std::cout << sizeof(Example1 ) << std::endl; // 12 std::cout &…

1. 结构体对齐

要点

  1. 变量只能存储在他的长度的整数倍地址上
  2. 结构体整体对齐跟他的最长的字段整数倍对齐

栗子1

struct Example1 {char a;  //1个字节int c;   //4个字节short b; //2个字节
};std::cout << sizeof(Example1 ) << std::endl;   // 12
std::cout << alignof(Example1) << std::endl;   // 4

int只能存储的内存序号:0,4,8,12,...
short只能存储的内存序号:0,2,4,6,...

内存序号存储大小
0char-a
1null
2null
3null
4int-c
5int-c
6int-c
7int-c
8short-b
9short-b

现在a、c、b三个变量总共占了10个字节,但是遵循第二点结构体整体对齐跟他的最长的字段的整数倍对齐,所以结构体总体应该是int=4的倍数,也就是4,8,12...
因此,最后这个结构体的大小是12个字节。对代码进行调试,监视内存窗口可以看到:
在这里插入图片描述

2. pack

要点

  1. 变量只能存储在他的min(长度,pack)的整数倍地址上
  2. 结构体整体对齐跟他的min(最长的字段,pack)整数倍对齐

栗子2

#pragma pack(2)
struct Example2 {char a;  //1个字节int c;   //4个字节short b; //2个字节
};std::cout << sizeof(Example2) << std::endl;   // 8  
std::cout << alignof(Example2) << std::endl;  // 2

int原来只能存储的内存序号:0,4,8,12,...->因为min(4, 2) = 2, 现在变成0,2,4,6,...
short还是只能存储的内存序号:0,2,4,6,...

内存序号存储大小
0char-a
1null
2int-c
3int-c
4int-c
5int-c
6short-b
7short-b

现在a、c、b三个变量总共占了8个字节,但是遵循第二点结构体整体对齐跟他的min(最长的字段,pack)整数倍对齐,所以结构体总体应该是pack = 2的倍数,也就是2,4,6,8,...
因此,最后这个结构体的大小是8个字节。

对阿秀网站栗子上的解释

C++八股基础语法02

要点

  1. 变量只能存储在他的长度的整数倍地址上
  2. 结构体整体对齐跟他的最长的字段整数倍对齐
// alignas 生效的情况struct Info {uint8_t a;  //1个字节uint16_t b; //2个字节uint8_t c;  //1个字节
};std::cout << sizeof(Info) << std::endl;   // 6个字节  
std::cout << alignof(Info) << std::endl;  // 2

uint8_t只能存储的内存序号:0,1,2,3,...
uint16_t只能存储的内存序号:0,2,4,6,...

内存序号存储大小
0uint8_t -a
1null
2uint16_t-b
3uint16_t-b
4uint8_t-c

null代表内存填充为空

现在a、b、c三个变量总共占了5个字节,但是遵循第二点结构体整体对齐跟他的最长的字段整数倍对齐,所以结构体总体应该是uint16_t大小的倍数,也就是2,4,6,8,...
因此,最后这个结构体的大小是6个字节。

3. alignas与alignof

c++11以后引入两个关键字 alignas 与 alignof 。其中alignof可以计算出类型的对齐方式,alignas可以指定结构体的对齐方式。

要点

  1. 变量只能存储在他的长度的整数倍地址上【这一点和普通版没有任何区别】
  2. 结构体整体对齐跟他的max(最长的字段,alignas指定长度)整数倍对齐

因为alignas只能指定比默认值,也就是结构体最长字段,更大的值。所以对齐大小要么是默认值,要么是比默认值大的值

struct alignas(4) Info2 {uint8_t a;  //1uint16_t b; //2uint8_t c;  //1
};std::cout << sizeof(Info2) << std::endl;   // 8  4 + 4
std::cout << alignof(Info2) << std::endl;  // 4

uint8_t只能存储的内存序号:0,1,2,3,...
uint16_t只能存储的内存序号:0,2,4,6,...

内存序号存储大小
0uint8_t -a
1null
2uint16_t-b
3uint16_t-b
4uint8_t-c

现在a、b、c三个变量总共占了5个字节,但是遵循第二点结构体整体对齐跟他的max(最长的字段,alignas指定长度)整数倍对齐,所以结构体总体应该是alignas = 4大小的倍数,也就是4,8,...
因此,最后这个结构体的大小是8个字节。

后面几个调试的例子运行结果如图:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/306008/

相关文章:

  • 国内虚拟助手网站怎样用ps做网站的效果图
  • 黑白灰网站wordpress编程视频教程
  • 南昌知名网站建设公司内蒙古呼和浩特市邮编
  • 网站开发用的工具做网站要分几部分完成
  • 网站一键提交收录学做网站论坛VIP怎么样
  • 在淘宝做网站可以退货退款么公众号平台登录入口官网
  • 深圳创意网站建设wordpress免费的吗
  • 公司内部网站源码天津河东做网站哪家好
  • 通化网站建设中英文切换网站模板
  • 网站建设工程师职责十个常见的网络推广渠道
  • 网站建设编辑做土司的网站
  • 玉泉路网站制作wordpress怎么置顶
  • 网站建设工程师职责说明城市建设投资公司 网站
  • 贵港网站建设动态服装设计师怎么学
  • 网站有哪些类型和它的成功案例表格制作excel下载
  • 网站备案初审过了wordpress文字加效果
  • 泉州手机网站建设公司公司网站建设入什么费用
  • 建站 wordpress传统网站和手机网站的区别是什么
  • 网站开发图片存哪里上海3d建模培训学校
  • 网站设计方案案例街机网页游戏大全
  • 网站文字代码哈尔滨建设鞋城
  • 中国建设银行网站的社保板块在哪里做网站的大小
  • 网站需求怎么做西安谁家做网站
  • 网站设计例子上海网站平台建设
  • 广东网站建设系统网页紧急升级
  • 贵阳建设工程招投标网站优化营商环境存在问题及整改措施
  • 为什么自己做不出一个好网站大气集团网站模板
  • 网站数据分析建设vi设计概念
  • 站长之家ping小程序设计网站
  • 高新公司网站建设哪家好织梦如何仿手机网站