Bounded Buffer Problem < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Hi Leute!
Ich hab hier einen Code, der einen Ringpufferspeicher darstellen soll.
#include<stdlib.h>
#include<stdio.h>
#define BUFFER_SIZE 10
int main()
{
int in=0, out=0;
char next_Produced, next_Consumed;
char buffer[10];
while(true)
{
while(((in+1) % BUFFER_SIZE) == out);
buffer[in] = next_Produced;
in = (in+1) % BUFFER_SIZE;
}
while(true)
{
while(in == out);
next_Consumed = buffer[out];
out = (out+1) % BUFFER_SIZE;
return next_Consumed;
}
return 0;
}
Was innerhalb den while-Schleifen passiert ist mir soweit klar; was ich nicht verstehe ist, wie die beiden while-Schleifen nun ineinandergreifen, dass eben so ein Ringpufferspeicher realisiert wird in dem die "leere Stelle" quasi durch den Buffer "wandert".
Könnt ihr mir helfen?
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:21 Do 17.11.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
wo ist denn "true" definiert? Im gezeigten code wird es nie geändert;
wenn es constant <> 0 wird das 1te while nie enden
|
|
|
|