Witam,
Sprawa jest zapewne trywialna, jednak nie mogę sobie wyjaśnić typowego, prezentowanego w książkach itp., rozwiązania dostępu do programowego bufora kołowego. Jak wiadomo zawsze definiowane są 2 indexy: bieżącego miejsca zapisu do bufora (np. bufferWriteTo) i bieżącego miejsca odczytu z bufora (np. bufferReadFrom). Mimo, że niejednokrotnie używałem tej konstrukcji, zastanawia mnie czemu np.: operacja zapisu wygląda tak, że najpierw inkrementowany jest indeks zapisu a dopiero w to nowe miejsce zapisywana jest dana, np. Buffer[++bufferWriteTo] = Dana. Podobnie przy odczycie, najpierw inkrementowany jest indeks a później pobierana dana spod tego indeksu. Czemu w ten sposób? Wydaje się, że indeks w obu przypadkach powinien być postinkrementowany a nie preinkrementowany. Jakieś sensowne wytłumaczenie? robiw
Sprawa jest zapewne trywialna, jednak nie mogę sobie wyjaśnić typowego, prezentowanego w książkach itp., rozwiązania dostępu do programowego bufora kołowego. Jak wiadomo zawsze definiowane są 2 indexy: bieżącego miejsca zapisu do bufora (np. bufferWriteTo) i bieżącego miejsca odczytu z bufora (np. bufferReadFrom). Mimo, że niejednokrotnie używałem tej konstrukcji, zastanawia mnie czemu np.: operacja zapisu wygląda tak, że najpierw inkrementowany jest indeks zapisu a dopiero w to nowe miejsce zapisywana jest dana, np. Buffer[++bufferWriteTo] = Dana. Podobnie przy odczycie, najpierw inkrementowany jest indeks a później pobierana dana spod tego indeksu. Czemu w ten sposób? Wydaje się, że indeks w obu przypadkach powinien być postinkrementowany a nie preinkrementowany. Jakieś sensowne wytłumaczenie? robiw