首页 > 试题广场 >

函数intlen、len和iptoa提供了一种很纠结的方式,

[问答题]

函数intlen、len和iptoa提供了一种很纠结的方式,来计算表示一个整数所需要的十进制数字的个数。我们利用它来研究GCC栈保护者措施的一些情况。

int len(char *s) { 
  return strlen(s);
}
void iptoa(char *s, long *p) {
 long val = *p; 
  sprintf(s, "%ld", val);
}
int intlen(long x) {
  long v; 
  char buf[12]; 
  v = x;
  iptoa(buf, &v);
  return len(buf);
}
下面是intlen的部分代码,分别由带和不带栈保护者编译:

这道题你会答吗?花几分钟告诉大家答案吧!