0%

C语言 标准函数库

标准函数库

算术

求商和余数的函数div

字符串转换

函数atoiatol执行基数为10的转换;

而函数strtolstrtoul允许你在转化时指定基数,同时还允许访问字符串的剩余部分。

浮点表示形式

函数modf把一个浮点值分成整数和小数两个部分。

非本地跳转

setjmplongjmp函数提供了一种类似goto语句的机制,但它并不局限于一个函数的作用域之内。这些函数常用于深层嵌套的函数调用链。

信号

信号表示一种事件,它可能异步地发生,也就是并不予程序执行过程的任何时间同步。

信号处理函数

由于信号可能在任何时候发生,所以由信号处理函数修改的变量的值可能会在任何时候发生改变。因此,我们不能指望这些变量在两条相邻的程序语句中肯定具有相同的值。volatile关键字告诉编译器这个事实,防止它以一种可能修改程序含义的方式“优化”程序。

通常情况下,上面的程序会认为第二个测试和第一个测试具有相同的结果

而如果把变量value声明为volatile类型的,就不会进行此类优化。
有时,如果不用volatile修饰符,可能无法编写多线程程序,要么编译器失去大量优化的机会。

终止执行

  • abort函数用于不正常地终止一个正在执行的程序;
  • atexit函数可以把一些函数注册为退出函数exit function;
  • exit函数用于正常终止程序;

断言

assert(test)用于检测test是否为真。用这种方法可以使调试变得更容易。并且我们可以在头文件assert.h被包含之前,添加#define NDEBUG皆可以禁用所有的断言。
总结

  • frexpldexp函数在创建与机器无关的浮点数表示形式方面是很有用的。frexp函数用于计算一个给定值的表示形式;ldexp函数用于解释一个表示形式,恢复它的原先值;
  • qsort函数把一个数组中的值按照升序进行排序;
  • bsearch函数用于在一个已经排好序的数组中用二分法查找一个特定的值;
  • locale就是一组函数,根据世界各国的约定差异对C程序的行为进行调整;
  • 使用setjmplongjmp可能导致晦涩难懂的代码;
  • 使用断言可以简化程序的调试;
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道