Standardklausel vor Fallabschnitten in der switch-Anweisung

8

Gefunden in Linux / Kernel / signal.c

%Vor%

Vielleicht ist das ein nicht ganz gutes Beispiel, aber ich kann nicht verstehen, wie es funktioniert und was Linus veranlasste, den default-section vor die switch-Anweisung zu setzen.

    
Netherwire 27.08.2013, 15:57
quelle

1 Antwort

10

Die Reihenfolge der case Labels innerhalb eines switch Blocks im Code hat nichts damit zu tun, welche ausgeführt wird. Das default Label wird ausgeführt, wenn kein case übereinstimmt oder von einem case darüber fällt. Das erste in der Codebasis zu haben, ändert das nicht.

Der erste Vorteil von default ist, dass es unmöglich ist, dass ein case darüber versehentlich oder absichtlich in default fällt. Das heißt default wird ausgeführt, wenn und nur wenn der Wert keine case -Anweisungen im switch -Block entspricht.

Um extrem pedantisch zu sein, könntest du trotzdem das default Label mit einem expliziten goto treffen. Das ist aber ziemlich selten.

    
JaredPar 27.08.2013, 15:59
quelle

Tags und Links