跨平台C++;-有没有理由选择“ltoa”,因为它';有空吗? 我最近开始着手开发一个C++项目,最初是由别人开发的。

跨平台C++;-有没有理由选择“ltoa”,因为它';有空吗? 我最近开始着手开发一个C++项目,最初是由别人开发的。,c++,type-conversion,cross-platform,C++,Type Conversion,Cross Platform,查看不同平台上源代码的旧副本,Windows版本中似乎使用了\u ltoa,但每次需要新的Linux版本时,代码都被手动更改为使用sprintf 我可以使用#如果定义的话来避免对每个平台进行手动更改,但是有什么理由不在所有平台上使用sprintf 在构建Windows时,ltoa在任何方面是否“更好” 编辑: 即使这个代码是C++,我还是喜欢坚持C函数来进行这种特定类型的转换,因为生成的char数组被传递给JNI函数 NeXSTRIGUTF 。 我可以使用std::to_string,然后使用s

查看不同平台上源代码的旧副本,Windows版本中似乎使用了
\u ltoa
,但每次需要新的Linux版本时,代码都被手动更改为使用
sprintf

我可以使用
#如果定义的话
来避免对每个平台进行手动更改,但是有什么理由不在所有平台上使用
sprintf
在构建Windows时,ltoa在任何方面是否“更好”

编辑:
即使这个代码是C++,我还是喜欢坚持C函数来进行这种特定类型的转换,因为生成的char数组被传递给JNI函数<代码> NeXSTRIGUTF 。
我可以使用
std::to_string
,然后使用
string::c_str()
来获取字符数组,但这是一个额外的、不必要的函数调用。

sprintf
由于格式字符串的额外复杂性,理论上可能会稍微慢一点。实际上,大多数现代编译器都能够解析格式字符串,并且在简单的情况下,能够将其自身解析为适当的函数调用(一些
ltoa
——类似于本例)


因此,我会使用
sprintf
,避免弄乱特定于实现的东西

sprintf
由于格式字符串带来的额外复杂性,理论上可能会稍微慢一点。实际上,大多数现代编译器都能够解析格式字符串,并且在简单的情况下,能够将其自身解析为适当的函数调用(一些
ltoa
——类似于本例)


因此,我会使用
sprintf
,避免弄乱特定于实现的东西

sprintf
由于格式字符串带来的额外复杂性,理论上可能会稍微慢一点。实际上,大多数现代编译器都能够解析格式字符串,并且在简单的情况下,能够将其自身解析为适当的函数调用(一些
ltoa
——类似于本例)


因此,我会使用
sprintf
,避免弄乱特定于实现的东西

sprintf
由于格式字符串带来的额外复杂性,理论上可能会稍微慢一点。实际上,大多数现代编译器都能够解析格式字符串,并且在简单的情况下,能够将其自身解析为适当的函数调用(一些
ltoa
——类似于本例)


因此,我会使用
sprintf
,避免弄乱特定于实现的东西 STD::toSype 。我已经更改了标题。它是C++,虽然C函数已经在很多地方使用。标题C,问题体和标签表示C++。是哪一个?在C++中,最好的选择是<代码> STD::toSype 。我已经更改了标题。它是C++,虽然C函数已经在很多地方使用。标题C,问题体和标签表示C++。是哪一个?在C++中,最好的选择是<代码> STD::toSype 。我已经更改了标题。它是C++,虽然C函数已经在很多地方使用。标题C,问题体和标签表示C++。是哪一个?在C++中,最好的选择是<代码> STD::toSype 。我已经更改了标题。它是C++,虽然C函数已经在很多地方使用过。我同意,够了。我同意,够了。我同意,够了。我同意。