
万物皆可C
文章平均质量分 89
万物皆可C
Aspiresky
一步一步向前走!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言基本数据类型
数据类型整型数据类型C语言提供了char、short、int以及long三种不同长度的整型数,并根据数据的表示是否带有符号位,又进一步区分为无符号整型数和有符号整型数。整型数的表示对于无符号整型数,数据在计算机中的表示就是普通的二进制数;但是有符号数由于包含符号位,需要使用额外的bit位来表示符号信息。最常见的有符号数的计算机表示方式就是补码。有符号数的其它表示:原码:最高有效位...原创 2020-03-22 18:08:34 · 1391 阅读 · 1 评论 -
C语言数据类型转换
类型转换分类C语言支持两种类型的数据转换:隐式类型转换和显式类型转换,前者由编译器完成类型转换的工作,后者则由开发人员显式地进行处理隐式类型转换隐式类型是系统进行的自动转换,其转换的基本原则是向表达数据能力更强的方向进行转换。系统自动数据类型转换规则如下图所示:当在表达式进行混合数据类型的运算时,系统会自动按上图中的规则将参加运算的数据转换成同一类型的数据在进行运算。显式类型转换在必...原创 2020-03-22 18:09:35 · 677 阅读 · 0 评论 -
C语言结构体内存对齐
关键字:空结构体、位域、自然边界、内存对齐struct关键字struct关键字的功能是将不同的数据类型封装起来,抽象成一个整体使用。空结构体结构体所占的内存大小是其成员所占内存之和,但如果我们定义了一个空的结构体,那么它的大小是多少?考虑下面的这种情况:typedef struct empty_struct_s{}empty_struct_t;经过测试,在gcc上,使用siz...原创 2020-03-22 18:10:51 · 444 阅读 · 0 评论 -
C语言结构体位域及其存储
概述在一些应用中,比如网络协议,经常会涉及对数据的某些比特位进行操作,尽管可以使用位的相关运算,但是C语言提供了位域用以支持对一个字节的某几个位进行访问,操作起来也更加方便。本文关注于说明C语言中位域的使用及其在内存中的排列规则,尤其在大小端平台下位域存储的差异。位域的定义与引用位域不同于一般的结构体成员,它以位为单位来定义成员的长度,因此在结构体中定义位域时,必须要指明位域成员所需要占用的二进制位数。一个简单的定义位域的示例如下:struct Foo { int a: 5; // 数据原创 2020-06-21 21:37:24 · 13950 阅读 · 9 评论 -
C语言预处理
预处理指令ANSI C标准定义的预处理指令如下表所示:预定义宏除了预定义指令,C语言标准还规定了一些预定义的宏,具备特殊的含义,可以在开发过程中直接使用:预定义宏含义_DATE_表示预处理日期的字符串,格式为“Mmm dd yyyy”,如"Oct 1 2019"_TIME_表示预处理时间的字符串,格式为“hh:mm:ss”,如"12:56:23"_FILE_表示当前源代码文件名的字符串_LINE_表示当前源代码文件中行号的字符串_STDC_设置原创 2022-01-11 22:41:48 · 296 阅读 · 0 评论 -
C99标准新特性概览
C99新增关键字关键字含义inline用于指示编译器尽可能地将inline修饰的函数指令在被调用的地方展开restrict用于指针修饰,表明该指针是访问其管理数据的唯一方式_BoolC99新增_Bool类型,用于表示布尔值,对应于逻辑值true和false_Complex复数类型_Imaginary虚数类型新增特性概述指定初始化C99标准支持在初始化结构体和数组时,不需要一次性将所有的成员和内容都进行设置,可以通过指定具体的成员名称或数组下标原创 2022-01-11 22:37:24 · 4397 阅读 · 0 评论