所以我正在编写自己的 printf 函数,所以我正在使用 stdarg.h 和系统调用 write()。但我不知道如何将 %p 错误地放入我的函数中。%X 会产生相同的结果吗?
我已经 %x 这样做了:
'x': x=va_arg(argp,argp, unsigned int);
char *temp = convert(x,16);
write(1, temp, lengthOFtemp);
break;
char *convert(unsigned int, int)
{
static char buf[33];
char *ptr;
ptr=&buf[sizeof(buff)-1];
*ptr='\0';
do
{
*--ptr="0123456789abcdef"[num%base];
num/=base;
}while(num!=0);
return(ptr);
}