分类 默认分类 下的文章

在 avr gcc 中因为硬件条件的限制,默认情况下 sprintf %f 是不可以使用的;
好像有两种解决方法,一种是修改编译参数,另一种是使用 dtostrf 函数。

函数声明:

char *dtostrf(double __val, char __width, char __prec, char *__s);

大致用法:

char buf[32];
dtostrf( value, 5, 2, buf);

对于修改参数这种方式有点麻烦就不做尝试了。

int64_t在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是:

printf("%ld", value); // 64bit OS 
printf("%lld", value); // 32bit OS

兼容的方法:

#include <inttypes.h>  
printf("%" PRId64 "n", value);