2016-04-18 8 views
0

Gibt es eine Version von C oder einen Compiler, der keine implizite Deklaration von Funktionen zulässt?Implizite Deklaration der Funktion in C

Zum Beispiel. Wenn ich mit dem mingw-Compiler die printf-Funktion in meinem Programm verwende, ohne stdio.h einzubeziehen, kompiliert er mein Programm und zeigt eine Warnung an: "implizite implizite Deklaration der eingebauten Funktion printf".

Ich würde gerne wissen, ob es eine Version von C oder einen Compiler gibt, der mein Programm in diesen Situationen nicht kompiliert.

Mit freundlichen Grüßen.

+0

Warum nicht die verschiedenen Optionen ansehen, die den verschiedenen Compilern zur Verfügung stehen? Die meisten erlauben es, die Warnungen als Fehler zu machen. –

+1

Verwende '-Werror' und der Code wird nicht kompiliert. – 2501

+0

Der 1999er Standard hat das implizite 'int' entfernt, daher sollte das Kompilieren mit' -std = c99 -Werror 'irgendwelche impliziten Deklarationen enthalten. –

Antwort

1

Beim Kompilieren -Werror Option verwenden und alle Warnungen werden als Fehler betrachtet.

0

Sie können die Compileroption -Werror verwenden, während Sie Ihren Code kompilieren. Es wird alle Warnungen als error betrachten. Ich möchte meinen Quellcode mit diesen Optionen kompilieren.

gcc -Wall -Werror -Wshadow -Wextra SOURCE.c -Wfloat-equal