我在必须维护的程序中有很多记忆集。在现代C ++中使用memset是否是一种好习惯?
为什么和为什么不呢?
如果不是,应该首选什么memset?
90%的时间应该使用std::fill
而不是memset。这是因为std::fill
它将与类一起正常使用,并且在将非字节类型的数组设置为非零值时也将起作用。例如,您可以将一个整数数组设置为0,但不能将一个整数数组设置为0x12345678。有std::fill
你可以的。
好的编译器可以std::fill
在适当的情况下优化为内存集。如果情况并非如此,那么任何性能影响都可以忽略不计。
使用std::fill
更快的记忆集并不危险。在std::fill
应使用的地方使用memset是危险的。默认为std::fill
。
同上,用于memcpy
和std::copy
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句