【发布时间】:2018-05-10 14:15:56
【问题描述】:
在用 C 语言将整数转换为字符串时,我对包含 stdio.h 有点恼火——这不会用不必要的文件描述符和其他代码使二进制文件膨胀吗?还是仅当您在代码中使用标准 io 文件描述符 stdout、stdin 或 stderr 时才打开流,例如使用printf、scanf、fprintf?如果我的代码只使用snprintf(3),也许还可以?
我拥有的最接近的现成解决方案是将整数转换为strfromd(3) 的双精度浮点数,格式字符串不会超过小数点。
bhuwansahni 在How to convert integer to string in C?
中提供了一个很好的自助解决方案我不知道如何使用(链接不起作用)itoa、_itoa 或 _fitoa_word,尽管 _fitoa_word 确实显示为带有 nm /lib64/libc6.so.6 的函数。
【问题讨论】:
-
听起来像是 XY 问题。
-
C 的
#inculde与 Java 的import不同。 -
itoa()和朋友不是 C,而是供应商特定的扩展。 -
用不必要的文件描述符和其他代码会不会使二进制文件膨胀? 尝试两种方法,看看大小,自己决定。