Ken u klassieken, zeker nooit https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf gelezen.Alleen slechte programmeurs hebben het goto statement nodig.
BS;Code: [Selecteer]while( millis() <= startupDelay ){}Doet het zelfde en is nog korter en duidelijker. Kan nog een paar karakters korter.Code: [Selecteer]while (millis() <= startupDelay);Citaat van: meinoKen u klassieken, zeker nooit https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf gelezen.+1
while( millis() <= startupDelay ){}
while (millis() <= startupDelay);
Ken u klassieken, zeker nooit https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf gelezen.
#define startupDelay( interval ) PIGS_CAN_FLY: if( millis() <= interval ) goto PIGS_CAN_FLY;void loop(){ startupDelay( interval ) ; .. ..
uint8 checkMyDeadBeef(){ uint32 DEADBEEF ; EEPROM.get( DEADBEEF_ADDRESS, DEADBEEF ) ; if( DEADBEEF != 0xDEADBEEF ) { DEADBEEF = 0xDEADBEEF ; EEPROM.put( DEADBEEF_ADDRESS, DEADBEEF ) ; return 1 ; } return 0 ;}
bool PIGS_CAN_FLY = true ;..while( PIGS_CAN_FLY == TRUE ) {
Alleen slechte programmeurs hebben het goto statement nodig.
void poorlyChosenName(){ for( int x = 0 ; x < 100 ; x ++ ) { for( int y = 0 ; y < 100 ; y ++ ) { for( int z = 0 ; z < 100 ; z ++ ) { // application code if( coordinateFound ) goto cleanupCode ; // more application code } } }cleanupCode: // cleanup code}
void poorlyChosenName(){ switch( someCase ) { case 1: // case 1 code goto cleanup123 ; case 2: // case 2 code goto cleanup123 ; case 3: // case 3 code goto cleanup123 ; case 4: // case 4 code goto cleanup456 ; case 5: // case 5 code goto cleanup456 ; case 6: // case 6 code goto cleanup456 ; cleanup123: // cleanup123code ; break ; cleanup456: // cleanup456code ; break ; } }
Everybody who is anti-goto cites, directly or indirectly, Edsger Dijkstra's GoTo Considered Harmful article to substantiate their position
De constructies die jij laat zien zijn in mijn ogen gewoon prutswerk waarbij niet goed over de structuur van je programma is nagedacht.
Ik behoor inderdaad stevig in het Edsger Dijkstra kamp, al hoewel ik het niet met alles van hem eens ben, zijn afkeer van OO heb ik niet.
SemaphoresSemaphores are a programming construct designed by E. W. Dijkstra in the late 1960s. Dijkstra's model was the operation of railroads: consider a stretch of railroad in which there is a single track over which only one train at a time is allowed.Guarding this track is a semaphore. A train must wait before entering the single track until the semaphore is in a state that permits travel. When the train enters the track, the semaphore changes state to prevent other trains from entering the track. A train that is leaving this section of track must again change the state of the semaphore to allow another train to enter.
Ik loop dat loconet documentje al een tijdje door te lezen en ook de library. Ik snapte eerst niet hoe er differentiatie moest plaats vinden. Maar ik denk dat ik hem vat. Als 2 apparaten tegelijk versturen, en apparaat 1 stuurt een '1' en de ander een '0' dan detecteert het apparaat wat de '1' stuurt een collission eerder dan de ander. Zolang er verschil zit in het bericht moeten ze er altijd uit kunnen komen, ongeacht hoeveel dingen (tot een max vanwege 25 pogingen) tegelijk proberen te versturen.