平时写开脚本,很多时候我们都可以不怎样注意效率,但是看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怎样写
1 static int mod_status_get_multiplier(double *avg, char *multiplier, int size) { 2 *multiplier = ‘ ‘; 3 4 if (*avg > size) { *avg /= size; *multiplier = ‘k‘; } 5 if (*avg > size) { *avg /= size; *multiplier = ‘M‘; } 6 if (*avg > size) { *avg /= size; *multiplier = ‘G‘; } 7 if (*avg > size) { *avg /= size; *multiplier = ‘T‘; } 8 if (*avg > size) { *avg /= size; *multiplier = ‘P‘; } 9 if (*avg > size) { *avg /= size; *multiplier = ‘E‘; } 10 if (*avg > size) { *avg /= size; *multiplier = ‘Z‘; } 11 if (*avg > size) { *avg /= size; *multiplier = ‘Y‘; } 12 13 return 0; 14 }
这样比上面效率高多了,一层一层下去,减小了运算过程,大家一看就清楚
时间: 2024-12-14 01:19:21