bereichsbezogen für mehrdimensionale Arrays
Mein Embedded-System hat eine C ++ 11-fähige Version von g ++, daher habe ich Code von bereinigt
for( uint16_t* p = array; p < (&array)[1]; ++p ) {
*p = fill_value;
}
zu
for( uint16_t& r : array ) {
r = fill_value;
}
welches istviel lesbarer.
Gibt es eine bereichsbasierte for-Schleife, die über alle Elemente von arbeitet?array2[m][n]
?
Die alte Version ist
for( int16_t* p = array2[0]; p < (&array2)[1][0]; ++p ) {
*p = fill_value;
}
und ich möchte keine verschachtelten Schleifen, es sei denn, es ist garantiert, dass der Compiler sie abflacht.
(FWIW, der Compiler ist der GNU 4.7.4 Linaro g ++ ARM-Cross-Compiler, der im Lieferumfang von TI Code Composer Studio 6.0.0 enthalten ist.)