持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情
🚩write in front🚩
🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 阿里云星级博主~掘金⇿InfoQ~51CTOP创作者(创作新人榜No.38)~[CSDN]周榜102﹣总榜1024 ⇿ 全网访问量35w+🏅
🆔本文由 謓泽 原创 发布在51CTOP 如需转载还请通知⚠
📝个人主页-謓泽 的个人主页 - 文章 - 掘金 (juejin.cn)📃
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏-【C语言】Topic - 謓泽的专栏 - 掘金 (juejin.cn)🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
🍅第七十一题→求出常用的数据类型总的字节大小🍅
⒈题目内容的本质。
说明⇢求出常用的数据类型总的字节大小,常规的数据类型有如下⇲
char:声明字符型变量或函数 short:声明短整形变量或函数 int:声明整形变量或函数 long:声明长整形变量或函数 signed:声明有符号类型变量或函数 unsigned:声明无符号类型变量或函数 float:声明浮点型变量或函数 double:声明双精度变量或函数说明⇢以上列举出来的数据类型都是比较常用的,也是大家必须要熟练掌握的。
⒉题目的要求。
说明⇢用 sizeof 单目操作符来在运行界面当中打印出对应的数据类型的字节大小总和。
注-它是总和也就是所有数据类型的大小相加。
⒊题目的解析。
说明⇢首先在做这道题目的时候我们要先清楚下对于字节的概念是什么才行。
首先在计算机当中,字节的单位为比特位(bit) ①字节=⑧比特位。
注-①比特当中存放的二进制是0和1的两个数字。
sizeof( 类型 ) sizeof 表达式
- 返回类型的对象表示的字节大小。
- 返回表达式类型的对象表示的字节大小,不应用隐式转换到表达式。
说明⇢表达式是由运算符和运算对象组成的,单独的一个运算对象「常量或变量」也可以叫做表达式。
注-这点经常会被人所忽略,但是这是一个很重要的概念了。
#pragma warning(disable:6031)
#define _CRT_SECURE_NO_WARNINGS 1
#pragma message("第七十一题→求出常用的数据类型总的字节大小")
#pragma pack (1) /*修改结构体对齐数,在vs编译器默认对齐数为8*/
#include<stdio.h>
#define BINARY 0
#define s sizeof
typedef struct
{
int a;
char b;
float c;
double d;
short e;
long f;
unsigned g;
signed h;
}tyof;
int main(void)
{
#if BINARY
int sum = s(int) + s(char) + s(float) + s(double) + s(short) + s(long) + s(unsigned) + s(signed);
printf("字节:sum = %d\n", sum);
#else
printf("字节:sum = %d\n", s(tyof));
#endif
return 0;
}
运行结果🖋
sizeof(字节) = 31
说明⇢上述第二种代码会比第一种难,第二种实际上就是用结构体来存储这些数据类型,当成一个结构体类型来的。但是,这个会涉及到一个结构体内存、结构体对齐规则、如何修改默认对齐数、 的概念。不知道也没有关系第一种也是可以的,到时候博主也会写一篇关于这方面的内容。所以,不用担心(o゚v゚)ノ