mặt hàng này trong linux/kernel/signal.cMặc định khoản trước khi phần trường hợp trong câu lệnh switch
switch (_NSIG_WORDS) {
default:
for (i = 1; i < _NSIG_WORDS; ++i) {
x = *++s &~ *++m;
if (!x)
continue;
sig = ffz(~x) + i*_NSIG_BPW + 1;
break;
}
break;
case 2:
x = s[1] &~ m[1];
if (!x)
break;
sig = ffz(~x) + _NSIG_BPW + 1;
break;
case 1:
/* Nothing to do */
break;
}
Có lẽ đây không phải là ví dụ khá tốt, nhưng tôi không thể hiểu được cách thức hoạt động và những gì nhắc Linus để đặt phần mặc định ở phía trước câu lệnh chuyển đổi.
'x = * ++ s & ~ * ++ m;' == 'x = (* (++ s)) & (~ (* (++ m)));' ..'default: 'giống như bất kỳ trường hợp nào khác nếu bạn không viết như cuối cùng, bạn cần thêm câu lệnh' break; 'cho cùng một lý do chúng ta trường hợp khác –