
平时写开脚本,很多时候我们都可以不怎样注意效率,但是看c代码的时候,你会发现,才意思自己真的是一个coder啦
1,单位转换 (根据传入的数返回相应的kb,mb,gb等等)
可能我们直觉来想就会这样做啦
if(num>1024*1024*1024){
return num/1024/1024/1024+"gb"
}elseif(num>1024*1024){
return num/1024/1024+"mb"
}else{
return num/1024+"kb"
}
我以前写文件上传的时候就是怎样写的,太笨啦,效率 也很低
来看看lighttpd怎样写
static int mod_status_get_multiplier(double *avg, char *multiplier, int size) {
*multiplier = ' '; if (*avg > size) { *avg /= size; *multiplier = 'k'; }
if (*avg > size) { *avg /= size; *multiplier = 'M'; }
if (*avg > size) { *avg /= size; *multiplier = 'G'; }
if (*avg > size) { *avg /= size; *multiplier = 'T'; }
if (*avg > size) { *avg /= size; *multiplier = 'P'; }
if (*avg > size) { *avg /= size; *multiplier = 'E'; }
if (*avg > size) { *avg /= size; *multiplier = 'Z'; }
if (*avg > size) { *avg /= size; *multiplier = 'Y'; } return ;
}
这样比上面效率高多了,一层一层下去,减小了运算过程,大家一看就清楚