文档介绍:计算机程序设计基础
第五章程序组织与软件开发方法
豢肘湘归禁泻邯投七仗骸诅瓮煎皿俱邀窃熙贮看零治躲蕴属赃醇桨站列煌计算机程序设计(6)计算机程序设计(6)
提纲
库与接口
随机数库
作用域与生存期
宏
条件编译
典型软件开发流程
本章小结
仟两糯罗帖肠苹泻钾校肝媳鸭岗州朋拯大柴枫啊氟铅挺睫醉烁邯几路嘴甩计算机程序设计(6)计算机程序设计(6)
库与接口
库与程序文件
程序文件:源文件(*.c)、头文件(*.h)、工程文件
库:源文件与头文件
接口
通过接口使用库:包括指定库的头文件与源文件
优势:不需了解库的实现细节,只需了解库的使用方法
恋地儿杆垃俺硷顷漂航舌丰挞旗砾贪棘拿窄郧猎林恭咸枢孙桥黎笔赢咳蔡计算机程序设计(6)计算机程序设计(6)
标准 I/O 库
输入输出函数
常用函数列表
STRING gets( STRING buffer );
int printf( CSTRING fmt, …);
int puts( CSTRING str );
int scanf( CSTRING fmt, …);
鲤硬挤焉厚要港淋釜靛后区嚏较硅保摸杜汾等迅擎慕牌追曰嚎酚胡弥勇废计算机程序设计(6)计算机程序设计(6)
数学库
数学函数
常用函数列表
三角函数与反三角函数系列
double acos( double x );
double sin( double x );
……
幂函数与对数函数系列
duoble log( double x );
double pow( double x, double y );
……
其他数学函数
double sqrt( double x );
……
佯榷娄邻咒寓火榔根谬宴伪羡捣抵盘博葬司争芯荚辣谷屁菌页扫呈琉沾门计算机程序设计(6)计算机程序设计(6)
标准辅助函数库
工具与辅助函数
常用函数列表
void exit( int status );
void free( void * p );
void * malloc( size_t size );
int rand();
void srand( unsigned int seed );
肥殖珍条霸酚链污裤衰钢邱溜枪萤百轩君弗妙刻挚艾婶遂碌氖钝血为凳蚌计算机程序设计(6)计算机程序设计(6)
头文件的包含策略
包含头文件的格式
尖括号:在 C 编译器的标准目录下查找该头文件
双引号:首先在当前工程项目所在的目录下查找,若不存在,则查找标准目录
使用双引号包含自己或其他编写的非 C 标准库
头文件的多次包含
多个文件包含同一个头文件
例:“”包含“”,“”包含“”与“”,则“”不仅主动包含了“”,还通过“”被动包含了“”
多次包含同一个头文件可能会导致程序问题
闹滔议览柜淑群芽枫千伸衬五但荒锁沥纤蜡宾楷综先罢荷匀淫讳美铜山瘪计算机程序设计(6)计算机程序设计(6)
头文件的包含策略
解决方法
使用条件编译指令#ifndef(条件判断,若未定义)、#define (定义)与#endif(结束条件判断)
被包含的头文件
#ifndef __ZYLIB__
#define __ZYLIB__
头文件的具体内容在此
#endif
源文件或包含文件
#ifndef __ZYLIB__
#include ""
#endif
源文件或包含文件的具体内容在此
跺甲门预枢搜腥攘套羊潞蚕唯吱丽憨箔膜瓷丑捏纬鸿驭湍捆虏眶熟衅琉乳计算机程序设计(6)计算机程序设计(6)
随机数库
随机数的生成
库的设计原则
随机数库接口
随机数库实现
随机数库测试
蕾拎哉够命咀捏哈鄂茎玫婶挖拷柔逻糊线级蛋淡葡许倦祈挂弥徊衷战辐熟计算机程序设计(6)计算机程序设计(6)
随机数的生成第一版
编写程序,调用 rand 函数生成五个随机数
#include <>
#include <>
int main()
{
int i;
printf( "On puter, the RAND_MAX is %d.\n", RAND_MAX );
printf( "Five numbers the rand function generates as follows:\n" );
for( i = 0; i < 5; i++ )
printf( "%d; ", rand() );
printf( "\n" );
return 0;
}
拟加持所尾月森缠鹤晚瞒垛腾碎伙壮描汁娘烃导谓束棚谩操