时间:2019-03-08 标签:c++coutvsprintf()
c++ cout vs printf()
在通过几个不同的来源学习了 c++ 之后,我发现关于 cout
/printf()
的使用的建议相互矛盾。一位消息人士说 printf()
,我引用:
... does not provide type safety, so it is easy to inadvertently tell it to display an integer as if it were a character and vice versa. printf() also does not support classes, and so it is not possible to teach it how to print your class data; you must feed each class member to printf() one by one.
所以,对我来说更重要的是使用 printf() 的可读性因素。另一方面,另一个消息来源提到,cout
使用重载运算符 <<
,需要执行更多指令,因此在内存方面比大型程序更昂贵。虽然,说这话的人是系统程序员,每一点性能都是至关重要的。但是说我想从事游戏或应用程序开发。
printf()
和 cout
之间的性能差异有那么重要吗?
一般来说,我选择在应用程序中使用什么真的很重要吗?
感谢您的任何意见。
您将针对特定用例衡量特定实施的差异并自行确定。
我想说问题中的两条推理线都有其优点,但您不能对性能一概而论。
如果你想从事游戏或应用程序编程,printf/cout就不需要太多了。在这些情况下的唯一用途是调试。
如果你真的需要大量使用printf/cout,区别就在写入大量数据的时候,否则就不用费心了。
在通过几个不同的来源学习了 c++ 之后,我发现关于 cout
/printf()
的使用的建议相互矛盾。一位消息人士说 printf()
,我引用:
... does not provide type safety, so it is easy to inadvertently tell it to display an integer as if it were a character and vice versa. printf() also does not support classes, and so it is not possible to teach it how to print your class data; you must feed each class member to printf() one by one.
所以,对我来说更重要的是使用 printf() 的可读性因素。另一方面,另一个消息来源提到,cout
使用重载运算符 <<
,需要执行更多指令,因此在内存方面比大型程序更昂贵。虽然,说这话的人是系统程序员,每一点性能都是至关重要的。但是说我想从事游戏或应用程序开发。
printf()
和cout
之间的性能差异有那么重要吗?一般来说,我选择在应用程序中使用什么真的很重要吗?
感谢您的任何意见。
您将针对特定用例衡量特定实施的差异并自行确定。
我想说问题中的两条推理线都有其优点,但您不能对性能一概而论。
如果你想从事游戏或应用程序编程,printf/cout就不需要太多了。在这些情况下的唯一用途是调试。
如果你真的需要大量使用printf/cout,区别就在写入大量数据的时候,否则就不用费心了。