数学库
头文件:math.h/cmath
库文件:libm
Linux链接方式:g++ -lm main.cpp
数学函数:
三角函数与反三角函数系列
幂函数与对数函数系列
其它数学函数
标准辅助函数库
工具与辅助函数
头文件:stdlib.h/cstdlib
常用函数
void exist(int status);
void free(void *p);
void mallocsize_t size);
int rand();
void srand(unsigned int seed);
随机数的生成
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int i;
cout<<"On this computer, the RAND_MAX is "<<RAND_MAX<<endl;
cout<<"Five numbers the rand function generates as follows:"<<endl;
srand((int)time(0));
for(i=0;i<5;i++)
{
cout<<rand()<<";";
}
cout<<endl;
return 0;
}
标准字符特征库
C标准字符特征库:ctype.h/cctype
标准字符特征库常用函数
bool isalnum(char c);
bool isalpha(char c);
bool isdigit(char c);
bool islower(char c);
bool isspace(char c);
bool isupper(char c);
bool tolower(char c);
bool toupper(char c);
全局数据对象
- 定义于函数或者复合语句块之外的数据对象
- 全局数据对象具有全局(文件)作用域,有效性从定义处开始直到本文件结束,其后函数都可以直接使用
- 若包含全局数据对象定义的文件被其它文件包含,则其作用域扩展到宿主文件中,这可能会导致问题。
- 不要在头文件中定义全局数据对象
函数的作用域与生存期
- 所有函数具有文件 作用域与静态生存期
在程序每次执行时都存在,并且可以在函数原型或函数定义后的任意位置调用 - 内部函数与外部函数
内部函数: 不可以被其他文件中的函数所调用
外部函数:可以被其他文件中的函数所调用
函数缺省时均为外部函数
内部函数定义:使用static关键字
内部函数示例:static int Transform(int x);
内部函数示例:static int Transform(int x){…}
全局变量的作用域扩展
- 全局变量的定义不能出现在头文件中,只有其声明才可以出现在头文件中
- 声明格式:使用extern关键字
//库的头文件 //此处仅引用变量a,其定义位于对应源文件中 extern int a; //变量a可导出,其他文件可用 //库的源文件 //定义变量a int a;
软件开发流程图
系统测试
#define NDEBUG
#ifndef NDEBUG
cout<<"Debugging:Actual price = " << actual_price<<endl;
#endif