Компиляция с int main (void) завершается неудачно; main (int argc, char * argv []) завершается успешно. Почему?

проблема

Зачем составлять программу, которая имеетint main(void) Основная функция отличается от компиляции программы, которая имеетint main(int argc, char *argv[]) Основная функция, если программа не использует аргументы, переданные в командной строке?

Это ОС или компилятор? Я не получаю те же результаты, используя mingw и g ++(что странно, не правда ли, wingw - это порт gcc).

примерКод
#include <iostream>
#include"SDL/SDL.h"
int main(void)
{
    return 0;
}
Команды компиляции
g++ test.cpp; #g++ 4.4.5
i586-mingw32msvc-g++ test.cpp; # mingw 4.4.4
ошибка

(Дано второй командой.)

a(main.o):(.text+0x85): undefined reference to `_WinMain@16'

Ответы на вопрос(2)

Ваш ответ на вопрос