BitVecForeachInRangeIdx
- Macro
- October 8, 2025
Table of Contents
BitVecForeachInRangeIdx
BitVecForeachInRangeIdxDescription
Iterate over bits in a specific range of the given bitvector bv at each index idx. The variables var and idx are declared and defined by this macro. idx will start from start and will go till end - 1
Parameters
| Name | Direction | Description |
|---|---|---|
bv | in,out | Bitvector to iterate over. |
var | in | Name of variable to be used which’ll contain bit value at iterated index idx. |
idx | in | Name of variable to be used for iterating over indices. |
start | in | Starting index (inclusive). |
end | in | Ending index (exclusive). |
Usage example (Cross-references)
// Test BitVecForeachInRangeIdx macro
bool test_bitvec_foreach_in_range_idx(void) {
WriteFmt("Testing BitVecForeachInRangeIdx macro\n");
BitVec bv = BitVecInit();
bool range_correct = true;
BitVecForeachInRangeIdx(&bv, bit, idx, 1, 4) {
// Should iterate over indices 1, 2, 3
// Values: false, true, false
// Test BitVecForeachInRangeIdx macro
bool test_bitvec_foreach_in_range_idx(void) {
WriteFmt("Testing BitVecForeachInRangeIdx macro\n");
BitVec bv = BitVecInit();
bool range_correct = true;
BitVecForeachInRangeIdx(&bv, bit, idx, 1, 4) {
// Should iterate over indices 1, 2, 3
// Values: false, true, false
- In
Foreach.h:99:
/// end[in] : Ending index (exclusive).
///
#define BitVecForeachInRange(bv, var, start, end) BitVecForeachInRangeIdx((bv), (var), UNPL(iter), (start), (end))
#endif // MISRA_STD_CONTAINER_BITVEC_FOREACH_H