Warum kann ich gets () in gcc -std = c11 verwenden?

Dasgets() -Funktion wurde aus der C-Sprache entfernt. Im Standard gibt es keine solche Funktion.

Noch kompiliere ich den folgenden Code:

#include <stdio.h>

int main (void)
{
  (void) gets (NULL);
}

using

gcc -std=c11 -pedantic-errors -Wall -Wextra

und es wird kompiliert, ohne dass Fehler oder Warnungen ausgegeben werden. Ähnlich

#include <stdio.h>

int gets;

int main (void)
{}

wird nicht kompiliert (Fehler: 'wird' als andere Art von Symbol neu deklariert).

n der Norm 4. Konformität §6 können wir lesen:

Eine konforme Implementierung kann Erweiterungen (einschließlich zusätzlicher Bibliotheksfunktionen) aufweisen, sofern diese das Verhalten eines streng konformen Programms nicht ändern.

Das oben Gesagte ist meines Erachtens nicht standardkonform, auch nicht im pedantischen Modus. Gibt es einen Grund dafür? Ist das beabsichtigt oder ist es ein Fehler?

GCC Version 4.9.1.

Bearbeiten

gcc --version
gcc (x86_64-win32-seh-rev1, Built by MinGW-W64 project) 4.9.1

Antworten auf die Frage(6)

Ihre Antwort auf die Frage