目次 - SDL 3.0 API(機能別) - CategoryBeginCode - SDL_FALLTHROUGH

SDL_FALLTHROUGH

breakのないcase文が意図したものであることを知らせるマクロ

ヘッダ

SDL3/SDL_begin_code.h

構文

#define SDL_FALLTHROUGH [[fallthrough]]

詳細

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

このように使用する:

switch (x) {
    case 1:
        DoSomethingOnlyForOne();
        SDL_FALLTHROUGH;  // コンパイラにこれは意図したものであることを伝える
    case 2:
        DoSomethingForOneAndTwo();
        break;
}

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_FALLTHROUGH - SDL Wiki