Klammern um Rückgabewerte - warum?

8

Sehr oft sehe ich Code wie diesen (C, C ++ und manchmal Java):

%Vor%

Ich sehe keinen Vorteil dieser Klammern. Meine Frage ist also, haben die Programmierer return als eine Art Funktion mit dem Rückgabewert als Argument angenommen oder gibt es wirklich Fälle, in denen diese Klammern sinnvoll sind?

Ich verstehe, dass eine ähnliche Frage bereits gestellt wurde hier , aber das hängt damit zusammen Nur ANSI C. Ich frage mich, ob es bestimmte C ++ - oder Java-spezifische Aspekte gibt, die dort nicht beantwortet wurden.

    
Frank Puffer 22.02.2016, 17:49
quelle

3 Antworten

17

In Bezug auf C

Klammern werden dort platziert, wo ein Ausdruck vorhanden ist, und man möchte, dass der Rückgabewert dieser Wert des Ausdrucks ist. Selbst dann sind Klammern nicht erforderlich. Es ist völlig in Ordnung, etwas wie

zu schreiben %Vor%

Programmierer machen es return (x + y); , um es lesbarer zu machen.

Also, Klammern zu setzen ist eine Frage der Meinung und Praxis.

In Bezug auf C ++

Es gibt einen geheimnisvollen Fall, in dem Klammern wichtig sind. Zitieren diese Frage

%Vor%

Sie können sehen, dass die zurückgegebenen Werte anders sind, und dies liegt an den Klammern. Sie können diese Antwort ausführlich durchgehen.

In Bezug auf Java macht Klammern keinen Unterschied.

Codierungskonventionen schlagen vor, mit

zu gehen %Vor%

Um mehr zu verstehen, lesen Sie diese Antwort.

HINWEIS: Ich weiß nicht viel über Java und C ++. Der gesamte Inhalt meiner Antwort zu Java und C ++ ist aus anderen Antworten entnommen. Ich habe dies getan, um die verschiedenen Konventionen für die drei Sprachen zu konsolidieren.     
Haris 22.02.2016, 17:52
quelle
4

Technisch gesehen gibt es keinen Grund, den angegebenen Ausdruck in return zu klammern. Es ist eine Frage des Geschmacks wirklich.

Das heißt, ich spalte normalerweise einen return -Ausdruck, wenn er boolesche Operatoren verwendet. Da solche Operatoren typischerweise als Teil von while oder if betrachtet werden, macht es klarer, dass Sie etwas mit diesem Wert machen wollen, abgesehen von meiner Meinung nach.

%Vor%     
dbush 22.02.2016 17:58
quelle
1

Meist Legacy. K & amp; R C Programmiersprache (1978) zeigt Renditen unter Verwendung von Klammern. Es ist möglich, dass einige alte C-Compiler dies benötigten, aber ich bin mir nicht sicher.

    
rcgldr 22.02.2016 20:47
quelle

Tags und Links