实时C++编程入门与面向对象技术应用
1. 实时C++基础工具
1.1 使用 <span> 界定指针范围
从C++20开始,标准库在 <span> 库中支持 std::span 模板。 std::span 是对连续值范围的高效抽象,例如程序代码中缓冲区或常量表中的值。在处理值范围或内存缓冲区时,使用 span 非常方便,特别是当这些数据存储为传统的C风格数组或在实时编程中常见的类似内存结构时。
以下是一个使用 std::span 清除编译时已知长度的传统遗留缓冲区的示例代码:
// chapter03_21-001_span.cpp
#include <span>
void clear_buffer(std::span<std::uint8_t> pb)
{
for(auto u : pb)
{
u = UINT8_C(0);
}
}
#define LEGACY_BUFFER_LENGTH 64U
uint8_t legacy_buffer[LEGACY_BUFFER_LENGTH];
void do_something()
{
clear_buffer(legacy_buffer);
}
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



