自定义C语言_printf函数无符号十六进制输出错误求助
自定义printf无符号十六进制输出异常排查求助
问题说明
- 自行实现的C语言
_printf函数,原本需支持包括无符号十六进制在内的格式化输出,但使用%x(小写)和%X(大写)格式符时输出结果异常 - 最初编写的
convbase函数采用“先计算所需空间再从缓冲区指定位置写入”的逻辑,输出错误;修改为从缓冲区当前位置写入后,问题仍然存在
编译命令与运行输出
编译使用的命令:
gcc -g -Werror -Wall -Wextra -Wno-format -pedantic -std=gnu89 *.c
程序运行后的输出内容:
Lowercase hexadecimal:[] Lowercase hexadecimal:[800003ff] Uppercase hexadecimal:[] Uppercase hexadecimal:[800003ff] Unsigned hexadecimal:[800003ff, ] Unsigned hexadecimal:[800003ff, 800003FF]
相关代码片段
以下是自定义_printf及convbase函数的实现代码:
// 请粘贴_printf函数代码
// 请粘贴convbase函数代码
内容的提问来源于stack exchange,提问作者Najib Muhammad
相关产品推荐
相关产品推荐

