加载中
第16章 C预处理器和C库 16.12 string.h库中的memcpy()、memmove()

不能把一个数组的值直接赋给另一个数组,因此,我们使用循环把数组中的元素逐个复制到另一个数组。 一个例外情况是:可以使用strcpy()和strncpy()函数复制字符数组。memcpy()和memmove()函数...

第16章 C预处理器和C库 16.11 诊断库

由头文件assert.h支持的诊断库是设计用于辅助调试程序的小型库。它由宏assert()构成。该宏接受整数表达式作为参数。如果表达式值为假(非零),宏assert()向标准错误流(stderr)写一条错误消...

第16章 C预处理器和C库 16.10 通用工具库

通用工具库包含各种函数,其中包括随机数产生函数、搜索和排序函数、转换函数和内存管理函数 。ANSI C 中,这些函数的原型在头文件stdlib.h中。 16.10.1 exit()函数和atexit()函数 我们在一些...

第16章 C预处理器和C库 16.9 数学库

数学库包含许多有用的数学函数。头文件math.h提供这些函数的函数声明或原型。 ANSI C 标准数学函数描述 原型 描述 double acos(double x) 返回余弦值为x的角度值 double asin(double x) 返回...

第16章 C预处理器和C库 16.8 C库

最初并没有官方的C库,后来,基于UNIX的C实现变成了事实上的标准。于是ANSI C 委员会主要以这个标准为基础开发了一个官方标准库。认识到C的应用范围不断扩展后,该委员重新定义了这个库,以使...

2017/07/26 07:19
10
第16章 C预处理器和C库 16.7 内联函数

通常函数调用需要一定的时间开销。这意味着执行调用时花费了时间用于建立调用、传递参数、跳转到函数代码段并返回。使用类函数宏的一个原因就是减少执行时间。C99还提供了另一种方法:内联函...

第16章 C预处理器和C库 16.6 其他指令

程序员可能需要为不同的工作环境准备不同的C程序和C库包。代码类型的选择会根据环境的不同而各异。预处理器提供一些指令来帮助程序员编写出这样的代码:改变一些#define宏的值后,这些代码就...

第16章 C预处理器和C库 16.5 文件包含: #include

预处理器发现#includ指令后,就会寻找后跟的文件名并把这个文件的内容包含到当前文件中。 被包含文件中的文本将替换源代码文件中的#include指令,就像您把被包含文件中的全部内容键入到源文件...

第16章 C预处理器和C库 16.4 宏,还是函数

许多任务即可以使用带参数的宏来完成,也可以使用函数完成。应该使用宏还是函数呢?没有硬性的规定,但应该考虑以下几点: 宏在某种程度上比常规的函数复杂。 有些编译器限制宏只能定义成一行...

第16章 C预处理器和C库 16.3 在#define中使用参数

通过使用参数,可以创建外形和作用都与函数相似的类函数宏(function-like macro)。 类函数宏的定义中,用圆括号括起来一个或多个参数,随后这些参数出现在替换部分。 下面是一个类函数宏定...

第16章 C预处理器和C库 16.2 明显常量:#define

与所有预处理指令一样,预处理指令#define用#符号作为行的开头。 ANSI标准允许#符号前有空格或制表符,而且该标准还允许在#和指令的其他部分之间有空格。 指令可出现在源文件的任何地方。指令...

第16章 C预处理器和C库 16.1 翻译程序的第一步

对程序作预处理以前,编译器会对它进行几次翻译处理。编译器首先把源代码中出现的字符映射到源字符集。该过程处理多字节字符和使C外观更加国际化的三元字符(rtigraph)扩展。 第二,编译器查...

第15章 位操作 编程练习

1、编写一个将二进制字符串转化为数字值的函数。也就是说如果您有以下语句: char * pbin="01001001"; 那么您可以将pbin作为一个参数传递给该函数,使该函数返回一个int值。 #include <stdi...

第15章 位操作 15.4 位字段

对位进行操作的第二种方法是使用位字段(bit field),位字段是一个signed int 或unsigned int中一组相邻的位。 位字段由一个结构声明建立,该结构声明为每一个字段提供标签,并决定字段的宽...

第14章 结构和其他数据形式 14.14 函数和指针

典型用法是,一个函数的指针可以作为另一个函数的参数,告诉第二个函数使用哪一个函数。例如,对一个数组进行排序,涉及到比较两个元素以决定 哪个元素放在前面。如果元素是数字,可以使用>...

2017/03/30 05:15
14
第14章 结构和其他数据形式 14.8 把结构内容保存到文件中

由于结构能保存多种多样的信息,所以它是建立数据库的重要工具。一个结构中保存的整套信息用术语来说就是一个记录,单个的项目称为字段。 或许最显而易见也是最没效率的保存方法就是使用fpr...

第14章 结构和其他数据形式 14.7 向函数传递结构信息

现在的C实现允许把结构作为参数传递,或把指向结构的指针作为参数传递,如果只关心结构的一部分,还可以把结构成员作为参数传递。首先,我们看看把结构成员作为参数传递。 14.7.1 传递结构成...

第14章 结构和其他数据形式 14.6 指向结构的指针

至少有三个原因可以解释为什么使用指向结构的指针是个好主意。 第一,就像指向数组的指针比数组本身更容易操作(例如在一个排序问题中)一样,指向结构的指针通常都比结构本身更容易操作。 ...

第14章 结构和其他数据形式 14.5 嵌套结构

程序清单14.3 friend.c程序 //friend.c --嵌套结构的例子 #include <stdio.h> #define LEN 20 const char *msgs[5]= { " Thank you for the wonderful evening,", "You certainly ...

第14章 结构和其他数据形式 14.4 结构数组

程序清单14.2 manybook.c程序 /*manybook.c 包含多本书的图书目录*/ #include <stdio.h> #define MAXTITL 40 #define MAXAUTL 40 #define MAXBKS 100 /*最多可以容纳的图书册数*/ struct...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部