高效地处理字符串
字符串操作的处理可能会影响程序的性能。
- 将字符串存储到分配的存储器中时,请在 8 字节 或 16 字节 边界上对齐字符串的开头。
- 跟踪字符串的长度。 如果知道字符串的长度,那么可以使用
mem函数而不是str函数。 例如,memcpy比strcpy快,因为它不必搜索字符串的末尾。 - 如果您确定源和目标不重叠,请使用
memcpy而不是memmove。 这是因为memcpy会直接从源复制到目标,而memmove可能会在复制到目标之前将源复制到内存中的临时位置,或者可能会根据字符串的长度 以相反的顺序进行复制。 - 使用
mem函数处理字符串时,如果 count 参数是常量而不是变量,那么可以生成更快的代码。 对于小计数值尤其如此。 - 尽可能使字符串字面值为只读。 当同一字符串多次使用时,使其只读可提高某些优化技术,减少内存使用,缩短编译时间。 您可以使用以下方式明确将字符串设置为只读
#pragma strings (readonly) 在您的源文件中或
-qro (默认启用)
除非编译时使用 cc
) 以避免更改源文件。