typedef void (*SDL_FunctionPointer)(void);
一部の環境はコードのアドレスとデータのアドレスの扱いが異なる場合があるため, 理論上は汎用的な関数ポインタはvoid *ではなくこれを使うべきである. よく知られた環境は現時点ではこの区別を行わないが, この汎用ポインタを使う方がより正確で移植性も高い.
何らかの理由(コンパイラや既存のコード)でこのtypedefをvoid *に強制したい場合は, SDLヘッダをインクルードする前にSDL_FUNCTION_POINTER_IS_VOID_POINTERを定義すること.