这种情况经常出现。您遍历一个数组,如果某些元素满足某些要求,您希望稍后跟踪它们的索引。这就是我的意思:
for(i=0;i<10;++i)
{
if(array[i] > 10)
{
//Keep track of this index for later use.
}
}
简单的解决方案是创建一个包含 10 个元素的数组,如果说第二个元素大于 10,则可以做 indices[i] = 1; 但我觉得这种方法不是很好。我需要一个大数组来存储它,并且大部分空间都被浪费了。
在我的应用程序中,我试图找出位数组中设置了哪些位。因此,如果设置了位 0 和 10,我需要存储这些数字以供程序以后使用。解决这个问题的最佳方法是什么?
此代码需要在 AVR Mega 上运行,而我正在使用 AVR-GCC,因此需要仅 C 的解决方案。