高效地处理字符串

字符串操作的处理可能会影响程序的性能。

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