我有一个很大的uint8_t数组(大小= 1824 * 942)。我想对每个元素执行相同的操作。特别是我需要从每个元素中减去-15。
此数组每秒刷新20次,所以时间是个问题,我要避免在数组上循环。
是否有简单的方法可以做到这一点?
您可以编写一个简单的函数:
void add(uint8_t* a, size_t a_len, uint8_t b) {
for(uint8_t* ae = a + a_len; a < ae; ++a)
*a += b;
}
并且希望编译器为您进行矢量化处理,请参见assembly。
您可以创建一个结构(或类),该结构(或类)将保存该数组中所有元素所共有的参数。
struct arr
{
uint8_t* arr;
uint8_t delta;
}