C语言的标准库概述

C语言的标准库包括15个部分,每一个部分都有一个头描述。标准头主要由函数原型、类型定义以及宏定义组成。如果使用了标准库中的函数,就要将相应的标准头使用#include包含进来。

标准头名功能描述
<assert.h>诊断仅包含assert宏。可以在程序中使用该宏来诊断程序状态(例如某个变量是否为0等),若检查失败,程序终止。
<ctype.h>字符处理包含判断字符类型及大小写转换的函数。
<errno.h>错误监测提供了errno。可以在调用特定库函数后检测errno的值以判断调用过程中是否有错误发生。
<float.h>浮点数特性提供了描述浮点数特性的宏。
<limits.h>整型特性提供了描述整数类型和字符类型特性的宏。
<locale.h>本地化提供了一些支持程序国际化的函数。
<math.h>数学计算提供了大量用以数学计算的函数。
<setjmp.h>非本地跳转提供了用于绕过正常的函数返回机制,从一个函数跳转到另一个正在活动的函数的setjmplongjmp函数。
<signal.h>信号处理提供了包括中断和运行时错误在内的异常情况处理函数。
<stdarg.h>不定参数提供了支持函数处理不变个数的参数的工具。
<stddef.h>常用定义提供了常用的类型和宏。
<stdio.h>输入输出提供了大量输入输出函数。
<stdlib.h>常用实用函数提供了大量实用的函数。
<string.h>字符串处理提供了大量字符串处理函数。
<time.h>日期和时间提供了获取、操纵和处理日期的函数。

包含了标准头的文件不能再使用标准库定义过的宏的名字作为其他元素的标识符,同时标准头中定义具有文件作用域的类型名不可以在文件中重定义。

标准库中经常在定义函数的同时,还定义了与函数同名的宏。默认情况下使用这样的函数,是使用宏调用,利用宏可以提高程序的运行速度。如果出于缩小可执行文件大小或获得函数指针的目的需要使用实际的函数,那么可以使用undef来删除宏定义,同时也可以通过给函数名字加圆括号的方式来屏蔽宏调用。

/**************************************
 * overveiw.c                         *
 *                                    *
 * C语言中的标准头的使用              *
 **************************************/

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

int max(int x, int y)
{
  int larger =  x > y ? x : y;
  printf("%d与%d中的最大值为%d\n", x, y, larger);
  return larger;
}

#define max(x,y) printf("宏调用:"); \
  max(x,y)

int main()
{
  int x = 0;
  int y = 0;

  printf("输入两个整数:");
  scanf("%d%d", &x, &y);


  max(x,y);

  /*屏蔽宏调用*/
  (max)(x,y);

#  undef max
  max(x,y);

  return 0;
}

注意上例中与函数同名的宏定义出现在函数定义之后。
[标准库示例

参考文献

  1. K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
  2. http://blog.csdn.net/menggucaoyuan/article/details/8434405
  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值