C语言细节——浮点运算、可变参数

浮点运算

1、浮点数的保存与整数一样是通过二进制进行的

所以从十进制小数转成二进制再转回去就会不一样。

2、比较两个浮点数最好的方法就是利用一个精确地阈值

ex: if(fabs(a - b)) <= epsilon * fabs(a) )

可变参数

1、在printf()中,%f同时表示float和double

2、使用stdarg.h可以使用可变参数

使用次序必须是va_list, va_start(),va_arg(),va_end()

3、可以使用下列函数输出和输入可变参数

int vprintf(char *format, va_list param);

int vfprintf(FILE *stream, char *format, va_list param);

int vsprintf(char *string, char *format, va_list param);

int vscanf(char *format, va_list param);

int vsprintf(char *string, char *format, va_list param);

int vsscanf(char *s, char *format, va_list param);

奇怪的问题

原文地址:https://www.cnblogs.com/steven_oyj/p/1747712.html