理解 C 语言中的“span”
“span”类型是一种轻量级抽象,表示内存中连续的值序列。它可以被视为原始指针和容器之间的交叉,但没有后者的开销或所有权语义。
何时使用 span
考虑使用当分配的长度或大小很重要时,跨越原始指针。例如,您可以使用:
void read_into(int* buffer, size_t buffer_size);
这样的函数,而不是:
void read_into(span<int> buffer);
如果您有适合您需求的现有容器,请不要使用 span。 Spans 无意取代标准库容器。
使用 span 的好处
此外,跨度有利于代码可读性和静态分析,有助于识别潜在的内存错误。
可用性
C 20: Span 被正式采用为 C 20 标准库中的 std::span。
C 17 或早期:
如果您使用的是 C 17 或更早版本,您可以通过第三方库(例如 Microsoft 的 GSL 或 GSL-Lite)访问 span,它们提供基于核心指南的支持库(GSL)的实现).
进一步资源:
以上是什么时候应该在 C 中使用 `std::span` ?的详细内容。更多信息请关注PHP中文网其他相关文章!