August 2021
Intermediate to advanced
450 pages
6h 57m
Chinese
<cstdlib>中还有如下特性:
qsort()和bsearch()使用的比较函数(cmp)必须具有如下类型:
即,排序函数不了解任何类型信息,只是简单地将其数组实参视为字节序列。排序函数按如下规则返回一个整型值:
·若认为*p小于*q,则返回负数;
·若认为*p等于*q,则返回零;
·若认为*p大于*q,则返回正数。
这与使用传统的<的sort()不同。
注意,exit()和abort()并不调用析构函数。如果你希望调用已构造对象的析构函数,可抛出一个异常(见13.5.1节)。
类似地,<csetjmp>中的longjmp()是一种非局部的goto,它不断解开调用栈,直至找到与setjmp()匹配的结果。它也不调用析构函数。如果从程序同一位置的throw语句调用了析构函数,longjmp()的行为是未定义的。绝不要在C++程序中使用setjmp()。
更多的C标准库函数请参考[Kernighan,1988]或其他一些有良好声誉的C语言参考书籍。
在<cstdint>中,我们可以找到int_fast16_t和其他标准整数别名:
<cstdint>中还提供了最大带符号和无符号整数类型的别名。例如:
Read now
Unlock full access