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);