Почему SDL определяет основной макрос?

После некоторых проблем с настройкой SDL я обнаружил, что SDL определяет макрос, который заменяет main:

#define main SDL_main

// And then
extern C_LINKAGE int SDL_main(int argc, char *argv[]);

Это также может привести к ошибкам компиляции, если в основной функции не определены параметры argcи argv.

Этот макрос вызывает у меня головную боль, как только я его вижу... Зачем SDL переопределять main? После еще нескольких поисков я обнаружил, что некоторые люди #undef mainиспользуют его как обычно.

Вот в чем вопрос:зачем SDL переопределять main, что он делает? Есть ли побочные эффекты от его отмены?

Одна вещь, которую я заметил, это то, что SDL перенаправляет стандартный вывод и ошибки в файлы (, и я не хочу этого поведения ), и это поведение прекращается, если я отменяю определение main.

36
задан Tibi 15 August 2012 в 19:42
поделиться