C语言的一些预处理指令和系统头文件
预处理指令:
1.#include 包含一个文本文件的内容
2.#define 定义宏
3.#undef 取消先前定义的某个宏
4.#if 如果条件满足执行指定动作
5.#ifdef 如果已经定义了某个宏,执行指定动作
6.#ifndef 与#ifdef相反,如果没有定义某个宏,执行指定动作
7.#else 如果先前的#if、#ifdef或ifndef不成立,执行指定动作
8.#endif 作为#if、#ifdef或#ifndef的结束标志
9.#elif 也就是else-if的意思,用于#if-#else的嵌套
10.#line 设置当编译器发出警告或错误信息时所使用的行号
11.#erro 指定编译期间的错误及对应信息
12.#pragma 给编译器提供实现细节信息
13.# 忽略此行
一些有用的系统头文件
1.ctype.h 测试和修改字符函数
<ctype.h>
关于字符类型的头文件操作
tolower() 转换成小写
toupper() 转换成大写
isalpha() 测试字母
islower() 测试小写
isupper() 测试大写
isalnum() 测试大写或小写
iscntrl() 测试控制符
isprint() 可打印字符包括空格
isgraph() 可打印字符不包括空格
isdigit() 是十进制数(0-9)
isxdigit() 十六进制基数
isblank() 标准空白字符(空格,\t)
isspace() 空格字符(空格,\t,\v,\r,\n,\f)
ispunct() isspace()&isalnum()返回false的可打印字符
2.float.h 描述局部浮点数状态
在float.h中定义的部分常量 Borland C++中的值
FLT_DIG float型的有效位个数 6
DBL_DIG double型的有效位个数 15
LDBL_DIG long double型的有效位个数 19
FLT_EPSILON float 型的最小正数x,满足1.0+x!=1.0 1.9209290e-07
DBL_EPSILON double型的最小正数x,满足1.0+x!=1.0 202204460492503131e-19
LDBL_EPSILON long double 型的最小正数x,满足1.0+x!=1.0 1.084202172485504e-19
FLT_MAX float型的最大值 3.40282347e38
DBL_MAX double型的最大值 1.797693134862316e308
LDBL_MAX long double型的最大值 1.18973149535723e4932
FLT_MAX_10_EXP float型允许的10为底的最大指数 38
DBL_MAX_10_EXP double型允许的10为底的最大指数 308
LDBL_MAX_10_EXP long double型允许的10为底的最大指数 4932
3.limits.h 描述局部整数状态
SCHAR_MIN 一个signed char型量的最小值(下面类似)
SCHAR_MAX
UCHAR_MAX
CHAR_MIN
CHAR_MAX
SHRT_MIN
SHRT_MAX
USHRT_MAX
INT_MIN
INT_MAX
UINT_MAX
LONG_MIN
LONG_MAX
ULONG_MAX
4.math.h 数学函数
abs int型数值的绝对值
fabs float型数值的绝对值
labs long 型绝对值
log 以e为底
log10 以10为底
pow x^y
rand 产生随机数
sqrt 平方根
srand 初始化随机数发生器
exp e的x次方
sin 正弦
cos
tan
sinh 双曲正弦
cosh
tanh
acos 反余弦
asin
atan
atof 字符串转double型数值
atoi 字符窜转int型数值
atol 字符串转long型数值
ceil 上限
floor 下限
5.setjmp.h 非局部的转移,包含了异常信号的宏定义
6.signal.h 异常处理
宏
SIGABRT 非正常的终止
SIGINT 中断
SIGILL 非法的指令
SIGFPE 非法的算术指令
SIGSEGV 访问非法的存储单元
SIGTERM 请求程序终止
SIG_DFL 当捕获一个指定的异常信号时终止程序
SIG_IGN 忽略一个指定的异常信号
7.stdarg.h 参数数量不固定的函数
8.stdio.h 输入输出
9.string.h 字符串处理函数
参考http://www.diybl.com/course/3_program/c/c_js/20091008/178247.html
10.time.h 时间函数
1.#include 包含一个文本文件的内容
2.#define 定义宏
3.#undef 取消先前定义的某个宏
4.#if 如果条件满足执行指定动作
5.#ifdef 如果已经定义了某个宏,执行指定动作
6.#ifndef 与#ifdef相反,如果没有定义某个宏,执行指定动作
7.#else 如果先前的#if、#ifdef或ifndef不成立,执行指定动作
8.#endif 作为#if、#ifdef或#ifndef的结束标志
9.#elif 也就是else-if的意思,用于#if-#else的嵌套
10.#line 设置当编译器发出警告或错误信息时所使用的行号
11.#erro 指定编译期间的错误及对应信息
12.#pragma 给编译器提供实现细节信息
13.# 忽略此行
一些有用的系统头文件
1.ctype.h 测试和修改字符函数
<ctype.h>
关于字符类型的头文件操作
tolower() 转换成小写
toupper() 转换成大写
isalpha() 测试字母
islower() 测试小写
isupper() 测试大写
isalnum() 测试大写或小写
iscntrl() 测试控制符
isprint() 可打印字符包括空格
isgraph() 可打印字符不包括空格
isdigit() 是十进制数(0-9)
isxdigit() 十六进制基数
isblank() 标准空白字符(空格,\t)
isspace() 空格字符(空格,\t,\v,\r,\n,\f)
ispunct() isspace()&isalnum()返回false的可打印字符
2.float.h 描述局部浮点数状态
在float.h中定义的部分常量 Borland C++中的值
FLT_DIG float型的有效位个数 6
DBL_DIG double型的有效位个数 15
LDBL_DIG long double型的有效位个数 19
FLT_EPSILON float 型的最小正数x,满足1.0+x!=1.0 1.9209290e-07
DBL_EPSILON double型的最小正数x,满足1.0+x!=1.0 202204460492503131e-19
LDBL_EPSILON long double 型的最小正数x,满足1.0+x!=1.0 1.084202172485504e-19
FLT_MAX float型的最大值 3.40282347e38
DBL_MAX double型的最大值 1.797693134862316e308
LDBL_MAX long double型的最大值 1.18973149535723e4932
FLT_MAX_10_EXP float型允许的10为底的最大指数 38
DBL_MAX_10_EXP double型允许的10为底的最大指数 308
LDBL_MAX_10_EXP long double型允许的10为底的最大指数 4932
3.limits.h 描述局部整数状态
SCHAR_MIN 一个signed char型量的最小值(下面类似)
SCHAR_MAX
UCHAR_MAX
CHAR_MIN
CHAR_MAX
SHRT_MIN
SHRT_MAX
USHRT_MAX
INT_MIN
INT_MAX
UINT_MAX
LONG_MIN
LONG_MAX
ULONG_MAX
4.math.h 数学函数
abs int型数值的绝对值
fabs float型数值的绝对值
labs long 型绝对值
log 以e为底
log10 以10为底
pow x^y
rand 产生随机数
sqrt 平方根
srand 初始化随机数发生器
exp e的x次方
sin 正弦
cos
tan
sinh 双曲正弦
cosh
tanh
acos 反余弦
asin
atan
atof 字符串转double型数值
atoi 字符窜转int型数值
atol 字符串转long型数值
ceil 上限
floor 下限
5.setjmp.h 非局部的转移,包含了异常信号的宏定义
6.signal.h 异常处理
宏
SIGABRT 非正常的终止
SIGINT 中断
SIGILL 非法的指令
SIGFPE 非法的算术指令
SIGSEGV 访问非法的存储单元
SIGTERM 请求程序终止
SIG_DFL 当捕获一个指定的异常信号时终止程序
SIG_IGN 忽略一个指定的异常信号
7.stdarg.h 参数数量不固定的函数
8.stdio.h 输入输出
9.string.h 字符串处理函数
参考http://www.diybl.com/course/3_program/c/c_js/20091008/178247.html
10.time.h 时间函数
浙公网安备 33010602011771号