abort

abs

assert

atexit

atof

atoi

atol

atoll

bsearch

div

exit

_Exit

getenv

labs

llabs

ldiv

lldiv

longjmp

qsort

raise

rand

setjmp

signal

srand

strtod

strtof

strtol

strtold

strtoll

strtoul

strtoull

system

va_arg、var_copy、va_start及va_end

该节的函数大都使用头文件。定义的类型div_t和ldiv_t分别是函数div()和ldiv()的返回值类型。

1.abort

#include

void abort(voi );

使程序立即非正常终止,一般不对缓冲区清仓。

2.abs

#include

int abs(int num);

返回整数变元num的绝对值。

3.assert

#include

void assert(int exp);

当表达式exp求值为0时,宏先向标准错误流stderr写错误信息,然后使程序非正常终止,否则,该宏无任何作用。

当宏NDEBUG定义时,该宏的定义为空。

4.atexit

#include

int atexit(void (*func)(void));

使得程序终止时调用由func指针指向的函数。如果成功注册,则函数返回0值,否则返回非0值。

最少应允许注册32个终止函数,被注册的函数以注册的反序调用。

5.atof

#include

double atof(const char *str);

把str指向的串转换为双精度浮点值,串中必须含合法的浮点数,否则返回值不确定。

串中的数可以由有效浮点数中的任何字符结束,如空白符、除句号外的标点符号和E或e之外的字符等。

6.atoi

#include

int atoi(const char *str);

把str指向的串转换为整数(int)值。串中必须含合法整型数,否则返回值无定义。

串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。

7.atol

#include

long atol(const char *str);

把str指向的串转换为长整数(long int)值。串中必须含合法整型数,否则返回值无定义。

串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。

8.atoll

#include

long long atoll(const char *str);

该函数是C99增加的。把str指向的串转换为长长整数(long long int)型值。其他方面类似于atol()。

9.bsearch

#include

void *bsearch(const void *key, const void *buf, size_t num,

size_t size, int (*compare)(const void *, const void *));

函数对buf指向的已排序数组实施对分查找(binary search),返回与key指向的关键字匹配的第一个成员的指针。num说明数组中的元素数目,size指出每个元素占有的字节数。

函数指针compare指向的函数把关键字key和数组元素比较,比较函数的形式为:

int func_name(const void *arg1, const void *arg2);

arg1是key指针,arg2是数组元素指针。

返回值必须如下:

arg1 < arg2时,返回值<0;

arg1 == arg2时,返回值=0;

arg1 > arg2时,返回值>0。

数组必须已经按升序排序,最低地址处放最低元素。

如果数组中不含关键字,则函数返回空指针。

10.div

#include

div_t div(int numerator, int denominator);

函数返回numerator/denominator操作的商和余数,返回值的结构类型是div_t,该结构有以下两个域:

int quot; /* 商 */

int rem; /* 余数 */

11.exit

#include

void exit(int exit_code);

该函数使程序立即正常终止,这意味着调用由atexit()注册的终止函数,并且清空和关闭任何打开的文件。

环境支持时,exit_code值传给调用进程。

12._Exit

#include

void _Exit(int exit_code);

该函数由C99增加。该函数类似于exit(),但有下列差别:

没有调用atexit()注册的函数;

没有调用signal()注册的信号处理程序;

打开的文件不必清空或关闭。

13.getenv

#include

char *getenv(const char *name);

函数返回一个指针,指向实现定义的环境信息表中与name指向的串有关的环境信息。千万不要用代码修改该串。

没有查到匹配数据时,返回空指针。

14.labs

#include

long labs(long int num);

返回num的绝对值。

15.llabs

#include

long long int llabs(long long int num);

由C99增加,返回num的绝对值。

16.ldiv

#include

ldiv_t div(long int numerator, long int denominator);

函数返回numerator/denominator操作的商和余数,返回值的结构类型是ldiv_t,该结构有以下两个域:

long int quot; /* 商 */

long int rem; /* 余数 */

17.lldiv

#include

lldiv_t div(long long int numerator, long long int denominator);

由C99增加,函数返回numerator/denominator操作的商和余数,返回值的结构类型是lldiv_t,该结构有以下两个域:

long long int quot; /* 商 */

long long int rem; /* 余数 */

18.longjmp

#include

void longjmp(jmp_buf envbuf, int status);

使程序在最近一次调用setjmp()处重新执行。status变成setjmp()的返回值。

19.qsort

#include

void qsort(void *buf, size_t num, size_t size, \

int (*compare)(const void *, const void *));

使用Quicksort算法对buf指向的数组进行排序,num是数组中元素的数目,size说明每个元素的大小(按字节)。

比较函数compare的形式如下:

int func_name(const void *arg1, const voie *arg2);

其返回值必须如下所示:

arg1 < arg2, <0

arg1 == arg2, ==0

arg1 > arg2, >0

数组按升序排列,最低地址处放最小元素。

20.raise

#include

int raise(int signal);

把signal指定的信息传入执行中的程序。成功时返回0,否则返回非0值。下面信号是由ANSI C标准定义的:

SIGABRT 终止错误

SIGFPE 浮点错误

SIGILL 非法指令

SIGINT 用户按CTRL+C键

SIGSEGV 非法的内存访问

SIGTERM 终止程序

21.rand

#include

int rand(void);

产生伪随机数序列,每次它被调用时返回一个0到RAND_MAX间的整数。RAND_MAX值至少是32767。

22.setjmp

#include

int setjmp(jmp_buf envbuf);

在缓冲区envbuf中保存系统堆栈的内容,供longjmp()以后使用。

23.signal

#include

void (*signal(int signal, void (* func)(int)))(int);

注册由func指向的函数,作为signal所说明的信号的一个处理程序。

24.srand

#include

void srand(unsigned int seed);

为rand()生成的伪随机数序列设置起点。

25.strtod

#include

double strtod(const char *start, char **end);

函数把start指向的字符串中存储的数字串表达式转换成双精度浮点值(double),然后返回转换结果。

过程如下:首先滤掉start前导空白符,然后逐个读入构成数的字符,任何非浮点数成分的字符都会终止上述过程,这类字符包括空白、标点(英文句号除外)和非E非e的字母等。最后,若原始串未用完,则end置为指向剩余串的开始字符。

溢出产生时,函数返回HUGE_VAL(代表上溢)或-HUGE_VAL(代表下溢),并且全局变量errno置为ERANGE。如果start未指向一个数值,则不发生转换并返回0。

如果范围有错,则返回0,errno也置为ERANGE。

26.strtof

#include

float strtof(const char *start, char **end);

该函数由C99增加。与strtod()类似,只是它返回float类型值。

27.strtol

#include

long int strtol(const char *start, char **end, int radix);

把start指向的串中的数字串表达式转换为长整数,然后返回转换结果。数字串的基(进制)有radix决定。如radix为0,进制由说明常数的规则决定;如radix为非0,它必须是2到36间的一个值。

end的使用类似于strtod()的讨论。

如果结果不能用长整数表示,则返回LONG_MAX或LONG_MIN,并且errno设为ERANGE。如果start不指向一个数,则不产生转换,返回0。

28.strtold

#include

long double strtold(const char *start, char **end);

该函数由C99增加。处理类似于strtod(),只是它返回long double型值。

29.strtoll

#include

long long int strtoll(const char *start, char **end, int radix);

该函数由C99增加。处理类似于strtol(),只是它返回long long int型值。

30.strtoul

#include

unsigned long int strtoul(const char *start, char **end,

int radix);

把start指向的串中的数字表达式转换为无符号长整数。执行过程类似于strtol()。

如果结果不能按无符号长整数表示,则返回ULONG_MAX或ULONG_MIN,且全局变量errno置为ERANGE。

31.strtoull

#include

unsigned long long int strtoull(const char *start, char **end,

int radix);

该函数由C99增加。处理类似于strtoul(),只是它返回unsigned long long int型值。

32.system

#include

int system(const char *str);

把str指向的串作为命令传入操作系统的命令处理程序。该函数与具体环境有关。

33.va_arg、var_copy、va_start及va_end

#include

type va_arg(va_list argptr, type);

void va_copy(va_list target, va_list source);

void va_end(va_list argptr);

void va_start(va_list argptr, last_parm);

其中va_copy由C99增加。

宏va_arg()、var_start()和va_end()一起作用,完成向函数传入数目可变的变元操作。

创建一个能获取可变数目变元的函数的通用过程如下:在函数定义中,可变参数表之前它必须有一个或多个已知参数,其中最右者为last_parm,在 调用va_start()时,last_parm被用作第二个参数。使用任何可变长的变元之前,必须先用va_start()初始化变元指针 argptr,之后,经过对va_arg()的调用,以作为下一个参数类型的参数类型,返回参数。最后取完所有参数并从函数返回之后,必须调用 va_end(),确保堆栈的正确恢复。如未正确调用va_end(),程序很可能瘫痪。

例子:函数sum_series()的第一个参数是变元项数。

double sum_series(int num, … )

{

double sum = 0.0, t;

va_list argptr;

va_start(argptr, num);

for (; num; num--) {

t = va_arg(argptr, double);

sum += t;

}

va_end(argptr);

return sum;

}

c语言strtof函数用法,c语言工具函数相关推荐

  1. c语言pow函数用法_C语言基础的不能再基础的程序知识!“hello world”!

    涉及到的知识点有:include有两种用法.{}大括号用法解释.C语言自定义名字的要求. c语言库函数printf的解释.编译错误有两种.调用system函数.c语言编译过程. 操作系统结构.指令集中 ...

  2. average函数用法c语言,Average函数

    SUM函数是用来CSS布局HTML小编今天和大家分享和的 用函数计算省事 AVERAGE函数是用来CSS布局HTML小编今天和大家分享平均值的 PRODUCT函数是用来CSS布局HTML小编今天和大家 ...

  3. 函数用法r语言_R语言中的apply函数族

    前言 apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环.分组.过滤.类型控制等操作.但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全 ...

  4. c 语言void函数用法,c语言void的用法

    许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.下面小编就跟大家介绍下c语言void的用法. c语言void的用法1.void的含义 void的字面意思是 ...

  5. c语言malloc函数用法_C语言内存模型!小本本记起来啊!

    一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...

  6. linux中c语言kbhit函数用法,C语言判断用户是否输入-非阻塞函数kbhit

    一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...

  7. c语言trim库函数用法,c语言编写trim 函数

    大多数语言都有个操作字符串的函数trim.可是c语言的glibc 库里面没带,那就自己DIY个吧. trim函数的作用是去除字符串两边的空格. TODO:画图说明 实现源码: char *ho_tri ...

  8. 标准C语言各种时间函数用法,C语言中系统时间函数是怎么用的?

    慕莱坞森 1.C语言中读取系统时间的函数为time(),其函数原型为:#include time_t time( time_t * ) ;time_t就是long,函数返回从1970年1月1日(MFC ...

  9. python方差函数_python 中的var()函数和cov函数用法-Go语言中文社区

    本文是学习多篇博客总结而得: numpy中var和cov函数求法和MATLAB中var和cov函数求法类似: 首先均值X,样本方差S,样本协方差C 公式分别为: 一.  MATLAB和Python中计 ...

最新文章

  1. python中append的用法_Python 列表 append() 使用方法及示例
  2. wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug
  3. 第七个猴子java_黑猴子的家:Java SE 练习题第七章
  4. 网络基础:网络IP 、子网掩码 、路由器 、DNS知识分享
  5. 《1024伐木累》-程序员妹子与花木兰
  6. 让我们发展纯粹的金钱关系吧,那多美好(转)
  7. java 30天之前,Java获取当前时间30天之前的时间
  8. delphi mysql 8.0_Delphi 8免费版
  9. 【Luat-esp32】2.点屏-st7735
  10. 【Flex】FLEX工程合并留意错误。
  11. 正圆锥体空间方程_计算机基础算法(一)——时间与空间复杂度
  12. python计算圆的周长_Python计算圆周长和面积
  13. 遥感、遥感技术、遥感卫星、卫星遥感、卫星遥感技术
  14. mysql中怎么防止数据丢失
  15. proxy代理服务器,实现跨域
  16. 录屏,webm格式转gif的小技巧
  17. k8s-滚动更新与健康检查
  18. 百度云分享 vitis vivado 2021.1 2020.2 2020.1 2019.2 2019.1 2018.3 2018.2 2017.4 , all OS(win和linux)
  19. 使用sklearn进行增量学习
  20. 换网线IP地址会改变吗?

热门文章

  1. Java httpClient中实现自定义DNS服务器地址配置
  2. 技术文章 | 运维人员注意啦:NetSarang的Xmanager和Xshell多种产品被植入后门
  3. NGINX配置及问题
  4. 时间的金钱价值(Finacial computing)
  5. 湖北移动魔百盒CM101S_Hi3798MV100_m8233_emmc_当贝桌面-强刷卡刷固件包
  6. BlackBerry模拟器中文支持
  7. JAVA代码操作HDFS
  8. iOS开源资源收集~~
  9. 【案例】Python模拟葫芦侠3楼登录
  10. 《深入理解LINUX内存管理》学习笔记(一)