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.
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.
Tags und Links c switch-statement