Ist das ein guter Stil, um den Funktionsprototyp innerhalb der Hauptfunktion deklarieren zu lassen?
Ich habe mir ein C-Tutorial angesehen, ich denke, es ist ziemlich veraltet. Sie deklarieren jedoch den Funktionsprototyp innerhalb von main. Ich erkläre normalerweise draußen vor Haupt.
%Vor%Ich persönlich würde aus verschiedenen Gründen "nein" sagen:
Ich werde auch nein sagen mit dem zusätzlichen Grund, dass wenn Sie explizite Deklarationen über den gesamten Code beginnen, Sie definitiv ungelöste externe Daten erhalten, wenn die Funktion, die Sie anrufen, plötzlich ihre Signatur ändert. Wenn Sie EINE Deklaration in einer Header-Datei haben, müssen Sie nur eine Deklaration ändern, wenn sich die Funktion ändert.
Allerdings würde ich aus folgendem Grund ja sagen: Wenn Sie nur eine einfache Testmethode schreiben, die nur für den einmaligen Gebrauch geschrieben ist, d. h. wenn Sie etwas wirklich schnell testen und dann die Funktion sofort verwerfen möchten. Dann kann es geschickt sein, einfach eine Deklaration einzuwerfen, bevor Sie den Anruf tätigen möchten.
Für Produktionscode - & gt; Nein nein Nein ! :)
Es ist kein guter Stil.
Deklarieren Sie entweder die lokalen Funktionsprototypen am Anfang oder verschieben Sie sie in eine Header-Datei.
Funktionsprototypen (und auch externe Variablen) können fast überall in der c-Sprache deklariert werden. Aber nur weil es möglich ist, sollte kein Grund sein, Spaghetti C zu schreiben.
Es macht den Code weniger lesbar. Für mich sind solche Praktiken ein deutliches Zeichen für Code-Geruch.
Da ich in dieser Pony-Show nicht die erforderliche Anzahl von Reifen gesprungen bin, bleibt mir nichts anderes übrig, als diesen Kommentar als Antwort zu posten.
Beachten Sie, dass dies nur ein Ausschnitt aus einem Buch ist und nicht die Art von Code, den Sie in einer Produktionsumgebung sehen. Das Code-Snippet ist in Ordnung, aber nicht ideal. Neil gab die beste Antwort, also gab ich ihm +1. Ich würde seinen dritten Punkt erwähnen, wenn Sie wirklich wissen wollen, wie es außerhalb von Tutorial / Lehrbüchern gemacht wird.
Auch ein Punkt, seit ich sie gemacht habe: Das "stdio.h" vs ist einfach eine Möglichkeit, dem Präprozessor mitzuteilen, wo nach der Datei stdio.h zu suchen ist. In den meisten Fällen sehen Sie stdio.h umgeben von & lt; & gt; Anstatt von "". Allerdings werden Ihre eigenen Header-Dateien, wie von Neils 3. Punkt erwähnt, von "" umgeben sein.
Tags und Links c