#define SDL_FALLTHROUGH [[fallthrough]]
Cコンパイラはswitchのcaseブロックにbreakや他のフロー制御がなく次のcaseに流れる場合に積極的に警告を発するようになった. これはよくあるミスで, バグの原因となるためである. しかし, 次のcaseに通り過ぎることは正しく望ましい場合もある. このシンボルはアプリケーションがコンパイラに意図を伝えるもので, 警告が発せられなくなる.
このように使用する:
switch (x) {
case 1:
DoSomethingOnlyForOne();
SDL_FALLTHROUGH; // コンパイラにこれは意図したものであることを伝える
case 2:
DoSomethingForOneAndTwo();
break;
}