printf () sem argumentos em C compila bem. quão?

Eu tentei o programa c abaixo e esperava obter erro em tempo de compilação, mas por que o compilador não está dando nenhum erro?

#include <stdio.h>
int main(void)
{
    printf("%d\n");
    return 0;
}

Por que a saída depende do compilador? Aqui está a saída em vários compiladores

Saída no Orwell Dev C ++ IDE (usa gcc 4.8.1): 0

Saída no Visual C ++ fornecida pelo Visual Studio 2010: 0

CodeBlocks IDE (usa gcc 4.7.1): valor do lixo

Compilador online ideone.com: valor do lixo

O que há de errado aqui ?

questionAnswers(10)

yourAnswerToTheQuestion