摘要: signal.h 库变量 | 变量 | 描述 | | | | | sig_atomic_t | 是 int 类型,在信号处理程序中作为变量使用。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。 | 库宏 | 宏 | 说明 | | | | | 阅读全文
posted @ 2019-09-15 10:45 youngliu91 阅读(148) 评论(0) 推荐(0) 编辑
摘要: errno.h 头文件定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为 的整数常量表达式。 库宏 | 宏 | 说明 | | | | | extern int errno | 通过系统调用设置的宏,在错误事件中的某些库函数表明了什么发生了错误。 | | EDOM Domain Error | 表 阅读全文
posted @ 2019-09-15 10:44 youngliu91 阅读(312) 评论(0) 推荐(0) 编辑
摘要: math.h 库宏 | 宏 | 说明 | | | | | HUGE_VAL | 当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno 为 ERANGE 来表示范围错误,并返回一个由宏 HUGE_VAL 或者它的否定( HUGE_VAL)命名的一个特定的很 阅读全文
posted @ 2019-09-15 10:43 youngliu91 阅读(365) 评论(0) 推荐(0) 编辑
摘要: stdlib.h 库变量 | 变量 | 说明 | | | | | size_t | 无符号整数类型,它是 sizeof 关键字的结果。 | | wchar_t | 是一个宽字符常量大小的整数类型。 | | div_t | 是 div 函数返回的结构。 | | ldiv_t | 是 ldiv 函数返回 阅读全文
posted @ 2019-09-15 10:41 youngliu91 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 错误报告 ANSI C 函数库的许多函数调用操作系统来完成某些任务,任何时候当操作系统根据一些要求执行任务的时候,都存在失败的风险。标准库在 中定义了一个外部整型变量 用来保存错误代码,这个错误代码可以提示操作失败的准确原因。 函数能够简化向用户报告错误的原因,该函数定义在 中,原型: 如果 不是 阅读全文
posted @ 2019-09-15 10:40 youngliu91 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 预处理 编译一个C程序涉及很多步骤,其中第一个步骤称为预处理(preprocessing)阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作。它的主要任务包括: 删除注释 插入被 include指令包含的文件的内容 定义和替换 define指令定义的符号 确认代码部分内容是否应该根据一些条件 阅读全文
posted @ 2019-09-15 10:40 youngliu91 阅读(761) 评论(0) 推荐(1) 编辑
摘要: 动态分配内存的意义 定义数组的长度的时候,必须指定长度,这是在编译期间就要确定的。 当我们无法在编译期间确定到底需要多大的内存块,此时就无法定义数组的大小: 实际使用的元素数量超过了声明的长度,程序无法处理。 如果程序实际使用的元素数量较少,巨型数组会造成内存空间浪费。 此时就需要在运行的时候根据实 阅读全文
posted @ 2019-09-15 10:36 youngliu91 阅读(1347) 评论(0) 推荐(0) 编辑
摘要: 结构体基础 聚合类型 聚合类型: 能够同时存储超过一个单独的数据,C语言提供两种聚合数据类型数组和结构。 数组和结构的区别: 数组是相同类型的数据的聚合,结构是不同类型数据的聚合。 因为数组的元素长度相同可以采用下标方式访问,结构成员的长度不同,只能通过 名字 访问,不能通过下标来访问。 数组名在表 阅读全文
posted @ 2019-09-15 10:32 youngliu91 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 字符串基础 C语言中没有显示的字符串数据类型,字符串以字符串常量或者字符数组的形式出现,字符串常量适用于那些程序不会对它们进行修改的字符串。所有其它字符串都必须存储于字符数组或动态分配的内存中。 字符串 是一串零个或多个字符,并且以一个位模式为全0的NULL字节结尾。 字符串所包含的的字符内部不能出 阅读全文
posted @ 2019-09-15 10:31 youngliu91 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 一维数组 一维数组初始化 在创建数组时,我们必须定义数组的类型和大小,数组的大小不能为0,数组中的元素类型都是相同的。 数组长度必须是固定的,必须为常量或常量表达式,不能使用变量进行初始化。 一维数组初始化 完整初始化: 不完整初始化: 自动计算数组长度初始化: 注意: 静态初始化缺省情况将数组元素 阅读全文
posted @ 2019-09-15 10:26 youngliu91 阅读(172) 评论(0) 推荐(0) 编辑
摘要: C语言函数传参 C 语言中,函数的参数传递方式有两种:传值调用和传址调用。 传值调用 将实参的值复制到形参相应的存储单元中,即形参和实参分别占用不同的存储单元,这种传递方式称为“参数的值传递”或者“函数的传值调用”。 值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参, 阅读全文
posted @ 2019-09-15 10:24 youngliu91 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 内存和地址 内存其实就是一组有序字节组成的数组,数组中,每个字节大小固定,都是 8bit。对这些连续的字节从 0 开始进行编号,每个字节都有唯一的一个编号,这个编号就是内存地址。示意如下图: 指针变量保存的就是这些编号,也即内存地址。 地址与内容 我们只要知道内存地址,就可以访问这个地址的值,但是这 阅读全文
posted @ 2019-09-15 10:18 youngliu91 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 操作符 算术操作符 +,-,*,/,%,除了%操作符其它几个操作符既可以用于浮点型,也可以用于整型。/的两个操作数是整型时它执行整除运算,其它气矿下执行浮点运算。%操作符的两个操作数必须是整型。 +,-,*,/,%,除了%操作符其它几个操作符既可以用于浮点型,也可以用于整型。 /的两个操作数是整型时 阅读全文
posted @ 2019-09-15 10:14 youngliu91 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 空语句 C最简单的语句就是空语句,它本身只包含一个分号。空语句不执行任何任务。 适用于语法要求出现一条完整的语句,但是不需要它执行任何任务的场合。 switch case 表达式具有整数类型,并且这里的语句就是该 switch 主体,它包括了多个 case 标签,以及最多一个 default 标签。 阅读全文
posted @ 2019-09-15 10:13 youngliu91 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 基本数据类型 C语言包含的基本数据类型:整型、浮点型、指针、聚合类型。 整型 整型包含:字符型、短整型、整型、长整型,它们都分为有符号和无符号两个版本。标准规定:长整型至少与整型一样长,整型至少与短整型一样长。limit.h中说明了不同整型的特点:最小值、最大值。缺省的char类型,在不同的编译器下 阅读全文
posted @ 2019-09-15 10:12 youngliu91 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 环境 ANSI C 的任何一个实现,都存在两种环境: 编译环境,源代码被转换为可执行的机器指令。执行环境,实际代码执行的环境。 编译环境,源代码被转换为可执行的机器指令。 执行环境,实际代码执行的环境。 这两种环境不必位于同一台机器上。 编译 编译将组成一个程序的每个源文件转换成目标代码,然后各个目 阅读全文
posted @ 2019-09-15 10:11 youngliu91 阅读(227) 评论(0) 推荐(0) 编辑