itoa
不是 ANSI-C 标准,因此不适用于 GCC
char* itoa(int val, int base){
static char buf[32] = {0};
int i = 30;
for(; val && i ; --i, val /= base)
buf[i] = "0123456789abcdef"[val % base];
return &buf[i+1];
}
我的问题
static char buf[32]
为什么要使用静态?我可以删除那个吗?为什么
i=30
?
不应该是31吗?32 位为 0 到 31。对于for循环,
val /= base
试图做什么?在for循环内部,做了
val%base
什么?我知道这是剩余的,但这与这里有什么关系?val/base
vs 和有什么不一样val%base
?