Do While Frage,ganz einfach ... aber ich sehs nicht



  • Hallo
    könnte mir bitte jemand die Schleifenbedingung erklären.
    Wenn 8 Bytes ankommen, würde er die Schleife doch nie verlassen
    da der Speicher dich 100 groß ist.
    Der Code ist natürlich korrekt, aber ich hab gerad n Brett vorm Kopf 🙄

    DWORD dwBytesRead = 0;
        BYTE  abBuffer[100];
        do
        {
            // Read data from the COM-port
            serial.Read(abBuffer,sizeof(abBuffer),&dwBytesRead);
            if (dwBytesRead > 0)
            {
                // TODO: Process the data
            }
        }
        while (dwBytesRead == sizeof(abBuffer));
    

    Würd mich freuen wenn ihr mich erleuchtet 😉

    Gruß
    Sven



  • while (dwBytesRead == sizeof(abBuffer))
    

    While läuft nur weiter, wenn die Bedingung wahr ist

    8 == 100 ? falsche Ausage -> Schleife abbrechen!

    Die Schleife läuft also nur weiter, wenn immer genau 100 Byte gelesen werdenm weil
    100 = 100? wahre Aussage -> neuer Durchlauf, q.e.d


Anmelden zum Antworten