У меня есть некоторая общая память, заполненная специализированным оборудованием. Он объявлен как массив структур, например:
Код: Выделить всё
struct port {
int data[10];
char port_id[8];
}
struct bus {
port ports[5];
char bus_id[8];
}
struct bus busses[10];
Я (пере) изучаю C++ и хотел использовать циклы for в C++11 для перебора данных.
ОДНАКО: Это последнее измерение массива (
), меня интересуют только первые четыре элемента. Есть ли способ взять фрагмент данных и использовать его в операторе for()?
Нравится
Код: Выделить всё
for (auto & b : busses) {
for (auto & p : bus.ports) {
for (auto & d : port.data[0 through 3]) {
store_the_address_of_d_for_use_elsewhere(d);
}
}
}
Есть ли способ использовать приведение во внутреннем цикле for, чтобы казалось, что в нем всего 4 элемента? Адрес данных важен, поскольку позже я собираюсь напрямую ссылаться на него с помощью указателей.
Подробнее здесь:
https://stackoverflow.com/questions/404 ... ing-in-c11