C hatte ursprünglich nicht die Fähigkeit, Strukturen per Wert zu übergeben; dies wurde in ANSI C89 hinzugefügt.
FILE
hätte in K&R C nicht funktioniert. Da FILE *
genauso gut funktioniert, bestand kein Bedarf oder Vorteil darin, die Funktionen neu zu gestalten, um mit FILE
anstelle von FILE *
zu arbeiten, als ANSI C erstellt wurde.
Wie Kerrek SB jedoch feststellt, ein weiterer Vorteil von FILE *
ist, dass FILE
als typedef'd struct Tag verwendet werden könnte und dies dem Implementierer die Freiheit lässt, sie auf die bestmögliche Weise zu implementieren, ohne dabei funktionierende Programme zu beeinträchtigen.